C#-使用NPOI将DataTable保存为Excel
/// <summary> /// DataTable导出Excel /// </summary> /// <param name="dt">DataTable</param> /// <param name="SavePath">保存路径</param> public void DataTabletoExcel1(DataTable dt, string SavePath) { if (File.Exists(SavePath)) { return; } IWorkbook excel = new HSSFWorkbook(); ISheet sheet; IRow row; //写入工作表名称 sheet = excel.CreateSheet("sheet1"); //创建第一行标题 row = sheet.CreateRow(0); //创建标题行的单元格 row.CreateCell(0).SetCellValue("ID"); row.CreateCell(1).SetCellValue("姓名"); row.CreateCell(2).SetCellValue("身份证"); row.CreateCell(3).SetCellValue("性别"); //写入DataTable中的数据 for (int i = 0; i < dt.Rows.Count; i++) { //第0行为标题 - 所以第1行开始 row = sheet.CreateRow(i + 1); for (int j = 0; j < dt.Columns.Count; j++) { //左往右写入数据 row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString()); sheet.AutoSizeColumn(j); } } //写入文件 FileStream xlsfile = new FileStream(SavePath, FileMode.Create); excel.Write(xlsfile); xlsfile.Close(); }
PS:这个写法需要DataTable中列的数量和NPOI列对象的数量一致