使用Apache POI XSSFWorkbook,如何一次刷新所有公式单元格?

时间:2012-11-22 07:26:04

标签: java apache-poi

请看一下这个问题:

我正在加载大型.xlsx文件,其大小为5MB&使用Apache POI&将值放在某些单元格上。但是在将所有数据写入工作表后,工作簿不会刷新,意味着不会对不同单元格上的公式进行评估。

我使用了“XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);”,它给出了一些错误:

    Exception in thread "main" java.lang.IllegalArgumentException: Unknown error type:
 -60 at org.apache.poi.ss.usermodel.FormulaError.forInt(FormulaError.java:131)

at org.apache.poi.xssf.usermodel.XSSFCell.setCellErrorValue(XSSFCell.java:667) 

at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.setCellValue(XSSFFormulaEvaluator.java:209) 

at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateFormulaCell(XSSFFormulaEvaluator.java:153) 

at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateAllFormulaCells(HSSFFormulaEvaluator.java:327) 

at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateAllFormulaCells(HSSFFormulaEvaluator.java:318) 

at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateAllFormulaCells(XSSFFormulaEvaluator.java:238) at com.RefreshExcelFile.main(RefreshExcelFile.java:15)

谢谢..

1 个答案:

答案 0 :(得分:1)

您必须遵循以下步骤

XSSFFormulaEvaluator.evaluateAllFormulaCells(workbook); workbook.write();

但您的问题与定义公式

相似