NPOI 读公式生成的单元格数据为0

来源:互联网 发布:java easyui 编辑:程序博客网 时间:2024/06/03 23:41

目的:

使用NPOI正确读取用NPOI生成的xlsx文件数据(数值为公式自动生成)

出现情况:

1) 读取生成的xlsx文件,数值为0

2) 将文件打开保存一下再读取可正确读取数据

3) 将文件打开不保存,仍无法正确读取数据

原因:

NPOI生成xlsx时是在单元格中记录了公式,使用EXCEL打开时,EXCEL通过公式为单元格赋值,因此在未改动的时候,关闭表格会提示是否保存。

解决方法:

1) 存储数据时,在最后增加代码:

HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(hssfworkbook);
cell = e.EvaluateInCell(cell);

2) 读取数据时,激活公式重新获得单元格

HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(hssfworkbook);
cell = e.EvaluateInCell(cell);


感想:

此bug隐藏很深不易发现……ORZ……略坑……

原创粉丝点击