求C# winform 使用NPOI 通过excel模板制作excel导出。

如题所述

第1个回答  2013-12-19

假如你有个这样的模板

代码像这样处理,如下

FileStream file = new FileStream(@"模板路径/book1.xls", FileMode.Open,FileAccess.Read); 
 
HSSFWorkbook hssfworkbook = new HSSFWorkbook(file);
HSSFSheet sheet1 = hssfworkbook.GetSheet("Sheet1");
sheet1.GetRow(1).GetCell(1).SetCellValue(200200);
sheet1.GetRow(2).GetCell(1).SetCellValue(300);
sheet1.GetRow(3).GetCell(1).SetCellValue(500050);
sheet1.GetRow(4).GetCell(1).SetCellValue(8000);
sheet1.GetRow(5).GetCell(1).SetCellValue(110);
sheet1.GetRow(6).GetCell(1).SetCellValue(100);
sheet1.GetRow(7).GetCell(1).SetCellValue(200);
sheet1.GetRow(8).GetCell(1).SetCellValue(210);
sheet1.GetRow(9).GetCell(1).SetCellValue(2300);
sheet1.GetRow(10).GetCell(1).SetCellValue(240);
sheet1.GetRow(11).GetCell(1).SetCellValue(180123);
sheet1.GetRow(12).GetCell(1).SetCellValue(150); 
 
//Force excel to recalculate all the formula while open
sheet1.ForceFormulaRecalculation = true;
//生成新的excel 
FileStream file = new FileStream(@"test.xls", FileMode.Create);
hssfworkbook.Write(file);
file.Close();

首先打开模板文件时要使用FileAccess.Read,这样可以保证文件不被占用。

这里的ForceFormulaRecalculation是强制要求Excel在打开时重新计算的属性,在拥有公式的xls文件中十分有用,使用时可别忘了设。

是不是比你想象的简单?你甚至不用去了解它是在何时读取文件内容的,对于NPOI的使用者来说基本上和读取普通文件没有什么两样。

最终生成的效果如下所示:

追答

只要你把模板定义好,再复杂的报表也一样的处理方式啊

第2个回答  2013-12-19
我这有代码 邮箱给我我给你发 求给分追问

求指导 比较复杂的报表 加 1060002916

本回答被提问者采纳
相似回答