最近在使用WPF 生成excel 并自动生成表头为DataTable的列名
//调用方法 参数为datatable类型的
ToExcel(sdt);
实现方法:
#region 保存到excel表 会根据datatable表 自动生成表头
public void ToExcel(DataTable dt)
{
//方法来源
//http://blog.csdn.net/sanjiawan/article/details/6818921
#region 初始化 生成Worksheet
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWB = excelApp.Workbooks.Add(System.Type.Missing); //创建工作簿(WorkBook:即Excel文件主体本身)
Microsoft.Office.Interop.Excel.Worksheet excelWS = (Microsoft.Office.Interop.Excel.Worksheet)excelWB.Worksheets[1]; //创建工作表(即Excel里的子表sheet) 1表示在子表sheet1里进行数据导出
#endregion
#region 新增一行用于保存标题
DataRow dr = dt.NewRow();
//sdt表中有的数据是int类型的这样当插入标题行的时候会提示类型不同
//所以在这里只是插入一个空行 然后标题列在excel表里设置
//for (int i = 0; i < dt.Columns.Count; i++)
//{
// // MessageBox.Show(dr[i].GetType().ToString());
// //dr[i] = 1;
//}
dt.Rows.InsertAt(dr, 0);
#endregion
#region 把datatable表中数据写入到 Worksheet中
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
excelWS.Cells[i + 1, j + 1] = dt.Rows[i][j].ToString(); //Excel单元格第一个从索引1开始
}
}
#endregion
#region 通过excel的方法编辑标题行
for (int i = 0; i < dt.Columns.Count; i++)
{
excelWS.Cells[1, i + 1] =