⽤NPOI 操作EXCEL -NPOI 计算公式-通过NPOI 获得公式的返回值⼀、获取模板⽂件中公式的返回值
如在D盘中有⼀个名为text.xls的Excel⽂件,其内容如下:
注意C1单元格中设置的是公式“
B1”,⽽不是值“12”。利⽤NPOI,只需要写简单的⼏句代码就可以取得此公式的返回值:HSSFWorkbook wb = new HSSFWorkbook(new FileStream("d:/test.xls",FileMode.Open));
HSSFCell cell = wb.GetSheet("Sheet1").GetRow(0).GetCell(2);
System.Console.WriteLine(cell.NumericCellValue);
输出结果为:
可见NPOI成功的“解析”了此.xls⽂件中的公式。注意NumericCellValue属性会⾃动根据单元格的类型处理,如果为空将返0,如果为数值将返回数值,如果为公式将返回公式计算后的结果。单元格的类型可以通过CellType属性获取。
⼆、获取NPOI⽣成的Excel⽂件中公式的返回值
上例中是从⼀个已经存在的Excel⽂件中获取公式的返回值,那么如果Excel⽂件是通过NPOI创建的,直接⽤上⾯的⽅法获取,可能得不到想要的结果。如:
复制代码
1 HSSFWorkbook hssfworkbook = new HSSFWorkbook();
2 HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
3 HSSFRow row = sheet1.CreateRow(0);
4 row.CreateCell(0).SetCellValue(3);
5 row.CreateCell(1).SetCellValue(4);
6 HSSFCell cell = row.CreateCell(2);
7
8 cell.SetCellFormula("$A1+$B1");
writeline输出数值变量
9 System.Console.WriteLine(cell.NumericCellValue);
复制代码
执⾏上⾯代码,将输出结果“0”,⽽不是我们想要的结果“7”。那么将如何解决呢?这时要⽤到HSSFFormulaEvaluator类。在第8⾏后加上这两句就可以了:
HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(hssfworkbook);
cell = e.EvaluateInCell(cell);
运⾏结果如下:A 1∗

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。