将DataTable中的数据导出到Excel中
来源:互联网 发布:淘宝卖家该注意事项 编辑:程序博客网 时间:2024/06/02 11:07
转自http://www.cnblogs.com/hechaoyang/archive/2011/01/17/1937668.html
首先添加对Microsoft.Office.Interop.Excel的引用:
1
using
Microsoft.Office.Interop.Excel;
01
/// <summary>
02
/// 将DataTable的数据导出到Excel中。
03
/// </summary>
04
/// <param name="dt">DataTable</param>
05
/// <param name="xlsFileDir">导出的Excel文件存放目录(绝对路径,最后带“/”)</param>
06
/// <param name="nameList">DataTable中列名的中文对应表</param>
07
/// <param name="strTitle">Excel表的标题</param>
08
/// <returns>Excel文件名</returns>
09
public
static
string
ExportDataToExcel(System.Data.DataTable dt,
string
xlsFileDir, Hashtable nameList,
string
strTitle)
10
{
11
if
(dt ==
null
)
return
""
;
12
13
Microsoft.Office.Interop.Excel.ApplicationClass excel =
new
Microsoft.Office.Interop.Excel.ApplicationClass();
14
Microsoft.Office.Interop.Excel.Workbooks workBooks = excel.Workbooks;
15
Microsoft.Office.Interop.Excel.Workbook workBook = workBooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
16
Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.Worksheets[1];
17
18
int
titleRowsCount = 0;
19
if
(strTitle !=
null
&& strTitle.Trim() !=
""
)
20
{
21
titleRowsCount = 1;
22
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns.Count]).Font.Bold =
true
;
23
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns.Count]).Font.Size = 16;
24
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns.Count]).MergeCells =
true
;
25
workSheet.Cells[1, 1] = strTitle;
26
}
27
if
(!System.IO.Directory.Exists(xlsFileDir))
28
{
29
System.IO.Directory.CreateDirectory(xlsFileDir);
30
}
31
string
strFileName = DateTime.Now.ToString(
"yyyyMMddHHmmssff"
) +
".xls"
;
32
33
string
tempColumnName =
""
;
34
35
for
(
int
i = 0; i < dt.Rows.Count; i++)
36
{
37
for
(
int
j = 0; j < dt.Columns.Count; j++)
38
{
39
if
(i == 0)
40
{
41
tempColumnName = dt.Columns[j].ColumnName.Trim();
42
if
(nameList !=
null
)
43
{
44
IDictionaryEnumerator Enum = nameList.GetEnumerator();
45
while
(Enum.MoveNext())
46
{
47
if
(Enum.Key.ToString().Trim() == tempColumnName)
48
{
49
tempColumnName = Enum.Value.ToString();
50
}
51
}
52
}
53
workSheet.Cells[titleRowsCount + 1, j + 1] = tempColumnName;
54
}
55
workSheet.Cells[i + titleRowsCount + 2, j + 1] = dt.Rows[i][j].ToString();
56
}
57
}
58
excel.get_Range(excel.Cells[titleRowsCount + 1, 1], excel.Cells[titleRowsCount + 1, dt.Columns.Count]).Font.Bold =
true
;
59
excel.get_Range(excel.Cells[1, 1], excel.Cells[titleRowsCount + 1 + dt.Rows.Count, dt.Columns.Count]).HorizontalAlignment = XlVAlign.xlVAlignCenter;
60
excel.get_Range(excel.Cells[1, 1], excel.Cells[titleRowsCount + 1 + dt.Rows.Count, dt.Columns.Count]).EntireColumn.AutoFit();
61
62
workBook.Saved =
true
;
63
workBook.SaveCopyAs(xlsFileDir + strFileName);
64
System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
65
workSheet =
null
;
66
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
67
workBook =
null
;
68
workBooks.Close();
69
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBooks);
70
workBooks =
null
;
71
excel.Quit();
72
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
73
excel =
null
;
74
return
strFileName;
75
}
- 将DataTable中的数据导出到Excel中
- C#中如何将DataTable中的数据导出到Excel
- c#将dataTable中的数据导出到Excel表中
- 将DataTable数据导出到Excel中
- 将DataTable数据导出到Excel文件中(xls)
- 将DataTable中的数据导出Excel
- 将DATATABLE中的数据导出EXCEL
- 使用NPOI将DataTable中的数据导入到Excel中
- 将excel中的数据导入到DataTable中
- 将DataTable导出到Excel
- 将DataTable 导出到Excel
- 一个绝对很好的将DataTable中的数据导出到Excel文件中的类源代码
- 将DataTable数据导出Excel
- asp.net 将DataTable中的数据导出到Excel并下载方法
- 将TDBGridEh中的数据导出到Excel中
- 将MsFlexGrid中的数据导出到Excel中
- 如何将DataGrid中的数据导出到Excel文件中
- 将DataSet中的数据导出到Excel表中
- java基础 线程
- log4.net
- tslib 1.4 在ARM板上移植
- Show an image using OpenCV 2.2.0 (Win7 and VS2010)
- 关于Facebook----在看完《社交网络》和《Facebook效应》之后
- 将DataTable中的数据导出到Excel中
- 渗透数据库之Sybase
- C#启动和关闭进程操作
- sql server 2008 常见安装错误解决方法
- Global.asax使用
- php分页原理
- ibatis SqlMapConfig.xml解释配置说明
- C# 路径,文件,目录,IO常见问题汇总
- Tslib主要滤波算法分析