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列对象的数量一致

浙公网安备 33010602011771号