在以往的开发经历中,有过一次从数据库表(主从的两张表)导出Excel的需求,并且到处的Excel的主从内容需要可折叠,特此记录下该功能实现。
第一步,使用NPOI组件,通过nuget获取。
第二步,获取需要导出的数据。
第三步,通过NPOI组件创建Excel文件。
HSSFWorkbook workbook = new HSSFWorkbook();
MemoryStream ms = new MemoryStream();
HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1");
....
//创建Row
var headerRow = sheet.CreateRow(0);//0-第一行
//创建Cell
var headerCell = headerRow.CreateCell(0);//0-第一个Cell
//往Cell中写入文本
contentCell.SetCellValue("Hello World");
....
//组合行
sheet.GroupRow(0, 10);
sheet.SetRowGroupCollapsed(0, true)//Excel文件默认收缩第一行到第10行
....
//返回文件MemoryStream
workbook.Write(ms);
ms.Flush();
ms.Position = 0;
workbook = null;
return ms;1
HSSFWorkbook workbook = new HSSFWorkbook();2
MemoryStream ms = new MemoryStream();3
HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1");4
5
....6
//创建Row7
var headerRow = sheet.CreateRow(0);//0-第一行8
//创建Cell9
var headerCell = headerRow.CreateCell(0);//0-第一个Cell10
11
//往Cell中写入文本12
contentCell.SetCellValue("Hello World");13
14
....15
//组合行16
sheet.GroupRow(0, 10);17
sheet.SetRowGroupCollapsed(0, true)//Excel文件默认收缩第一行到第10行18
19
....20
//返回文件MemoryStream21
workbook.Write(ms);22
ms.Flush();23
ms.Position = 0;24
workbook = null;25
return ms;