编程语言
首页 > 编程语言> > java – 使用Apache POI重新计算电子表格中的公式

java – 使用Apache POI重新计算电子表格中的公式

作者:互联网

我正在尝试使用POI XSSF来评估一些Excel公式.
这些值不必保存,我可能需要计算很多公式,所以我试图在同一个单元格中完成所有这些.

问题是即使在我重新计算之后,单元格值似乎仍然卡在输入的第一个公式上

FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
XSSFCell formulaCell = row.createCell(6);
formulaCell.setCellFormula("Date(2011,10,6)");
CellValue cellValue = evaluator.evaluate(formulaCell);
System.out.println(cellValue.getNumberValue());

formulaCell.setCellFormula("Date(1911,3,4)");
cellValue = evaluator.evaluate(formulaCell);
System.out.println(cellValue.getNumberValue());

输出40822.0
40822.0(excel相当于10/6/2011)两次而不是重新评估新公式.

解决方法:

如果您多次使用formulaEvaluator,则在两次使用之间需要此行,否则每次使用相同的结果.

formulaEvaluator.clearAllCachedResultValues()

标签:java,excel,apache-poi,xssf,hssf
来源: https://codeday.me/bug/20190614/1237333.html