C# Datatable 生成 Excel
datatable 转 excel ,源码:
bool DataTableToExcel(DataTable dt, string txtPath) { bool result = false; IWorkbook workbook = null; FileStream fs = null; IRow row = null; ISheet sheet = null; ICell cell = null; try { if (dt != null && dt.Rows.Count > 0) { workbook = new HSSFWorkbook(); sheet = workbook.CreateSheet("Sheet0");//创建一个名称为Sheet0的表 int rowCount = dt.Rows.Count;//行数 int columnCount = dt.Columns.Count;//列数 //设置列头 row = sheet.CreateRow(0);//excel第一行设为列头 for (int c = 0; c < columnCount; c++) { cell = row.CreateCell(c); cell.SetCellValue(dt.Columns[c].ColumnName); } //设置每行每列的单元格, for (int i = 0; i < rowCount; i++) { row = sheet.CreateRow(i + 1); for (int j = 0; j < columnCount; j++) { cell = row.CreateCell(j);//excel第二行开始写入数据 cell.SetCellValue(dt.Rows[i][j].ToString()); } } using (fs = File.OpenWrite(txtPath)) { workbook.Write(fs);//向打开的这个xls文件中写入数据 result = true; if (fs != null) fs.Close(); } } // MessageBox.Show("导出Excel成功"); return result; } catch (Exception) { if (fs != null) { fs.Close(); } return false; } }
调用方法:
var rtn = DataTableToExcel(systable, System.Windows.Forms.Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");