1 /// <summary>
2 /// DataTable导出到Excel
3 /// </summary>
4 /// <param name="dt"></param>
5 /// <returns></returns>
6 private static bool ExportExcel(DataTable dt)
7 {
8 string filePath = "Log/" + nowDateTime + ".xls";
9 bool Msg = false;
10
11 try
12 {
13 MemoryStream ms = new MemoryStream(); //创建内存流用于写入文件
14 IWorkbook workbook = new HSSFWorkbook(); //创建Excel工作部
15 ISheet sheet = workbook.CreateSheet("Sheet1"); //创建工作表
16
17 for (int i = 0; i < dt.Columns.Count; i++)
18 {
19 IRow r = sheet.CreateRow(0);
20 ICell cell = r.CreateCell(i);
21 cell.SetCellValue(dt.Columns[i].ColumnName);
22 }
23
24 for (int i = 0; i < dt.Rows.Count; i++)
25 {
26 DataRow dataRow = dt.Rows[i];
27 IRow row = sheet.CreateRow(i + 1); //在工作表中添加一行
28 for (int j = 0; j < dt.Columns.Count; j++)
29 {
30 ICell cell = row.CreateCell(j); //创建单元格
31 cell.SetCellValue(Convert.ToString(dataRow[j])); //赋值
32 }
33 }
34
35 workbook.Write(ms); //将Excel写入流
36 ms.Flush();
37 ms.Position = 0;
38
39 FileStream dumpFile = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
40 ms.WriteTo(dumpFile); //将流写入文件
41 dumpFile.Dispose();
42 Msg = true;
43 }
44 catch (Exception ex)
45 {
4647 }
48 return Msg;
49 }