单元格值更改时,公式不起作用
我正在使用POI Excel,我有这种情况:
通过这一行代码,我改变了A3值,这是一个下拉列表:
sheet.getRow(2).getCell(0).setCellValue(uf);
这部分工作正常,我已经validation了单元格值已被更改。
不好的部分是这样的:
E7有这样的公式:= CONCATENATE($ A $ 3; D7)
所以,当我改变A3的价值使用:
sheet.getRow(2).getCell(0).setCellValue(uf);
E7的值应该通过公式来改变,但这是行不通的。
我不知道如何使用java中的公式dynamic改变单元格的值。
我认为这应该是自己的工作。 就好像我手动更改了A3值。
在Apache POI中,当值更改时,Excel公式不会自动重新计算。
当您完成更改公式中引用的任何单元格的值时,请创build一个FormulaEvaluator
并告诉它使用evaluateAll
方法评估所有公式。
sheet.getWorkbook().getCreationHelper().createFormulaEvaluator().evaluateAll();
或者,您可以强制Excel打开时重新计算公式, setForceFormulaRecalculation
是在Workbook
上使用setForceFormulaRecalculation
设置相应的标志。
sheet.getWorkbook().setForceFormulaRecalculation(true);
- 如何在JAVA中使用apache poi在Excel中删除警告?
- 在Java中读取xlsxcheckbox值
- Apache POI的C#端口会破坏.xlsx中的embedded式OLE对象
- Excel 2007(.xlsx)在Java中使用POI 3.5读取代码?
- 为什么我不能在Apache POI中将一个工作簿链接到另一个工作簿?
- POI – SXSSFWorkbook – Excel发现不可读的内容
- 使用Apache POI打印电话号码(string)以显示为科学记数法(4.165551234E9)
- 在java中不能追加excel文件内容获取堆转储错误
- 有没有办法使用Apache POI在Excel中创build数据透视表?