在java中使用ApachPOI进行公式计算
我在excel工作表中使用了公式,并使用这段代码评估工作簿:在java中使用ApachPOI进行公式计算,java,apache-poi,Java,Apache Poi,我在excel工作表中使用了公式,并使用这段代码评估工作簿: FormulaEvaluator evaluato=wb.getCreationHelper().createFormulaEvaluator(); evaluator.clearAllCachedResultValues(); evaluator.evaluateAll(); 但是每次我想从Excel文件中读取数据时,我都必须使用它,这会增加时间,因为更新值需要10秒 那么,我是否可以在事件的预处理中使用这些代码,然后
FormulaEvaluator evaluato=wb.getCreationHelper().createFormulaEvaluator();
evaluator.clearAllCachedResultValues();
evaluator.evaluateAll();
但是每次我想从Excel文件中读取数据时,我都必须使用它,这会增加时间,因为更新值需要10秒
那么,我是否可以在事件的预处理中使用这些代码,然后使用评估结果更新工作表。因此,我不必每次从Excel获取值时都使用此代码 您也可以计算单个单元格,因此,如果您只对电子表格的某些部分的值感兴趣,只计算这些单元格可能就足够了,从而通过“evaluateAll”节省所有其他单元格所需的时间,例如 有关更多说明和提示,请参阅中的文档
switch (evaluator.evaluateFormulaCell(cell)) {
case Cell.CELL_TYPE_BOOLEAN:
System.out.println(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.println(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.println(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BLANK:
break;
case Cell.CELL_TYPE_ERROR:
System.out.println(cell.getErrorCellValue());
break;
// CELL_TYPE_FORMULA will never occur
case Cell.CELL_TYPE_FORMULA:
break;
}