Pan*_*oup 11 java excel apache-poi
我正在使用apache POI来更改Excel工作表中的单元格.更改值后,具有与已更改的单元格对应的公式的单元格不会更新.
当我进入excel并单击带有公式的单元格,然后单击功能栏时,公式将更新.
我有计算选项设置为自动更新.
快速举例.
行:
[A2 + A3] [1] [2]
A1在这里等于3
当我使用POI更改它时:
[A2 + A3] [2] [5]
在我点击那个单元格之前,A1仍然等于3.
刷新工作簿或工作表也不起作用.这是excel还是POI的问题?谁能想到一个解决方法?
ako*_*kis 22
如果您正在使用XSSF工作簿,则可以按如下方式重新评估所有公式单元格:
XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook)
Run Code Online (Sandbox Code Playgroud)
如果您使用HSSF工作簿,则存在类似的API:
HSSFFormulaEvaluator.evaluateAllFormulaCells(workbook)
Run Code Online (Sandbox Code Playgroud)
或者,根据您的具体设置以及您要完成的具体内容,您应该能够在此处找到解决方案
小智 10
如果您的工作表有一些公式,说A3=sum(A1:A2)是计算的,它正常工作,A1=5, A2 =4.如果改变A2的值2喜欢
sh.getRow(0).getCell(0).setCellValue(2); //设置A1 = 2并执行写入操作,检查A3的值是否仍显示9.看似错误但实际上没有.关键是Excel缓存以前计算的结果,您需要触发重新计算以更新它们.
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
或者
wb.setForceFormulaRecalculation(true);
然后执行写操作.这将为您提供正确的结果.详情请查看此处
| 归档时间: |
|
| 查看次数: |
12164 次 |
| 最近记录: |