将DataTable内容导出到Excel表格的两种方法
方法一:循环DataTable单元格内容拼接字符串,利用StreamWriter的Write方法将字符串写入Excel文件中
这种方法很实现很简单。拼接字符串时,每个单元格之间添加'\t'(表示一个占位符,相当于Tab键),每行之间添加"\r\n"(表示换行)。
但是这种方法不能设置Excel单元格样式
1、定义一个方法GetSavePath(),利用SaveFileDialog控件选择Excel文件要保存的路径。
private string GetSavePath()
{
using (SaveFileDialog savePath = new SaveFileDialog())
{
savePath.Title = "选择要保存的路径和文件名";
savePath.Filter = "Excel 97-2003|*.xls";
savePath.RestoreDirectory = true; //是否记录上次选择的路径
savePath.FileName = "导出的表格";
if (savePath.ShowDialog() == DialogResult.OK)
{
return savePath.FileName; //返回Excel文件的保存路径和名字
}
return "Cancel";
}
}
2、定义一个方法GetSWstr(),将DataTable内容转换成字符串。
private string GetSWstr(DataTable table2)
{
StringBuilder strHead = new StringBuilder ();
//先添加每列标题
; i < table2.Columns.Count; i++)
{
strHead.Append(table2.Columns[i].Caption.Trim() + '\t');
}
strHead.Append("\r\n");
//再依次添加每行内容
; i < table2.Rows.Count; i++)
{
; j < table2.Columns.Count; j++)
{
strHead.Append(table2.Rows[i][j].ToString().Trim() + '\t');
}
strHead.Append("\r\n");
}
return strHead.ToString();
}
3、定义一个方法 WriteToExcel(),将内容写入Excel文件
public string WriteToExcel(String str, string filePath)
{
try
{
using (StreamWriter sw = new StreamWriter(filePath, false, System.Text.Encoding.Default)) //写入流
{
sw.Write(str);
}
return "导出Execl成功!";
}
catch (Exception ex)
{
return "导出Execl失败!原因:" + ex.Message;
}
}
4、调用WriteToExcel
WriteToExcel(GetSWstr(table), GetSavePath());
方法二:利用COM组件实现Excel操作,可以设置Excel格式
这种操作也很简单,在定义好excel对象后,可以通过 excel.Cells[i, j]=? 对某一个单元格赋值。
也可以通过 range = excel.Range[excel.Cells[i, 1], excel.Cells[i, 3]]; 获取一个单元格区域,然后设置range的属性就可以设置单元格样式或值
range.MergeCells = true; //合并单元格
range.Value = "标题";
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Range range = null;
try
{
//第一行的第一列到第六列
range = excel.Range[excel.Cells[, ], excel.Cells[, ]];
range.MergeCells = true; ///合并单元格
range.Font.Bold = true; //黑体
range.Font.Size = ; //20号字体
range.HorizontalAlignment = XlHAlign.xlHAlignCenter; //水平居中
range.Value = "产品工序分解表"; //合并单元格的值
}
catch(Exception ex)
{
return "导出失败!错误原因:" + ex.Message;
}
finally
{
book = null;
range = null;
GC.Collect();
GC.WaitForPendingFinalizers();
excel.Quit();
excel = null;
}
将DataTable内容导出到Excel表格的两种方法的更多相关文章
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- js如何动态创建表格(两种方法)
js如何动态创建表格(两种方法) 一.总结 一句话总结: 1.方法一:写好创建表格的html代码,将之赋值给div的innerHTML. 2.方法二.直接用创建好的table元素的方法insertRo ...
- 用easyui实现查询条件的后端传递并自动刷新表格的两种方法
用easyui实现查询条件的后端传递并自动刷新表格的两种方法 搜索框如下: 通过datagrid的load方法直接传递参数并自动刷新表格 通过ajax的post函数传递参数并通过loadData方法将 ...
- .NET CORE 2.1 导出excel文件的两种方法
最近在做 MVC 项目的时候遇到项目的导出,下面总结下两种导出到excel 的方法 第一种方法: 将文件写到本地,然后返回这个File 或者返回这个 File 的绝对地址 其中 _hostingE ...
- LayUI使用弹窗重载父级数据表格的两种方法
参考LayUI官方文档,在子窗口中重载父级数据表格找到以下两种方法: 1.子窗口中重载:在子窗口中直接调用父级talbe的reload方法. $("body").on(" ...
- C#将数据集DataSet中的数据导出到EXCEL文件的几种方法
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- Java导出Excel文件的两种方法
将数据以Excel表格的形式导出:首先下载poi的jar包,导入项目中,或者使用maven仓库管理,在pom文件添加:<dependency> <groupId>org. ...
- mysql导出csv/excel文件的几种方法,mysql的load导入csv数据
方法一 php教程用mysql的命令和shell select * into outfile './bestlovesky.xls' from bestlovesky where 1 order by ...
- delphi 导出到excel的第1种方法
第一种方法delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):bo ...
随机推荐
- [程序安装包制作] Advanced Installer 备忘
原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...
- printf那点事
1.打印内存地址 #include<stdio.h> int main() { int a; printf("%p\n",&a); //%p打印地址,自己主动加 ...
- 微软可疑更新DhMachineSvc.exe
微软最近推出了大规模的更新仅针对中国.它包括DhMachineSvc.exe.所谓'微软设备健康助手服务'. 此更新是惊人的,首先,此更新只针对中国地区,其次,此更新支持WinXP,第三次更新一定的强 ...
- POJ 2411 Mondriaan's Dream (dp + 减少国家)
链接:http://poj.org/problem?id=2411 题意:题目描写叙述:用1*2 的矩形通过组合拼成大矩形.求拼成指定的大矩形有几种拼法. 參考博客:http://blog.csdn. ...
- OCP读书笔记(21) - 题库(ExamA)
Administer ASM disk groupsBack up the recovery catalogConfigure backup settingsConfigure, Monitor Fl ...
- C#并行和多线程编程
5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线 ...
- 測试之路2——对照XML文件1
才来几天,老大又给了我一个新的任务.不像曾经的建100个任务project那么坑爹,却还是顿时让我感觉压力山大. 由于在这之前,我改了他写的例程,用于生成新的任务项目,事实上任务项目就是通过XML文件 ...
- MVC中的Repository模式
1.首先创建一个空的MVC3应用程序,命名为MyRepository.Web,解决方案命名为MyRepository. 2.添加一个类库项目,命名为MyRepository.DAL,添加一个文件夹命名 ...
- 豆瓣api之OAuth认证
豆瓣api通过OAuth允许第三方应用访问用户数据,所以OAuth认证就是我们整个project的基础了. OAuth认证听起来挺神秘,其实挺简单的. 现在的大型网站的开放平台的认证几乎都是采用OAu ...
- mysql_windows_安装版添加到服务开机自启动
不解释 ,cmd下直接运行 sc create mysql binPath= "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe& ...