个人感觉国人开发的 NPOI 好用,至少比vs自带的 Excel 库函数好用。
既然不是自带,那就需要添加 dll,大概两种方式下载 NPOI.dll,一是官网,二是NuGet包,那肯定推荐 NuGet。
如果只想简单导出一个Excel,不整其他幺蛾子,添加这两个引用就可以了
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
1、从数据库查询数据到集合(非本文主题,略过)
2、主体(代码块阐明步骤)
1、创建工作簿
HSSFWorkbook workBook = new HSSFWorkbook();
2、创建sheet
HSSFSheet sheet = (HSSFSheet)workBook.CreateSheet("X_name_X");
3、表头(可建可不建)
定义行、单元格
IRow row;
ICell cell;
//第一行
row = sheet.CreateRow(0);
for (int i = 0; i < 3; i++)(假定三列)
{
//第一行中的所有单元格
cell = row.CreateCell(i);
}
row.GetCell(0).SetCellValue("第一列");
row.GetCell(1).SetCellValue("第二列");
row.GetCell(2).SetCellValue("第三列");
4、表数据(数据库中查出来并存入集合Test_List中)
for (int i = 0; i < Test_List.Count; i++)
{
row = sheet.CreateRow(i + 1); //数据就放在表头下面
for (int j = 0; j < 3; j++)
{
cell = row.CreateCell(j);
}
row.GetCell(0).SetCellValue(Test_List[i].xx1);
row.GetCell(1).SetCellValue(Test_List[i].xx2);
row.GetCell(2).SetCellValue(Test_List[i].xx3);//Test_List中设定好的字段
}
5、生成文件
string FileName = "TEST" + ".xls";
string FilePath = @"E:\TEST";
using (FileStream file = new FileStream(FilePath + FileName, FileMode.Create))
{
workBook.Write(file);
}