DataTable导出到Excel文件 (兼容Excel2003)

 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         }

 

posted @ 2016-12-22 16:08  夏日旋风  阅读(228)  评论(0)    收藏  举报