我想评估公式并从单元格中删除保留其值的公式。如何使用Apache POI完成这项工作?
以下是我评估所有公式的代码。
FormulaEvaluator evaluator = template.getCreationHelper().createFormulaEvaluator();
int sheetCount = template.getNumberOfSheets();
for(int sheetIndex = 0; sheetIndex < sheetCount; sheetIndex ++) {
sheet = dfaTemplate.getSheetAt(sheetIndex);
for (Row r : sheet) {
for (Cell c : r) {
if (c.getCellType() == Cell.CELL_TYPE_FORMULA) {
evaluator.evaluateFormulaCell(c);
}
}
}
}
答案 0 :(得分:1)
您应该使用evaluator.evaluateInCell(cell)
代替evaluator.evaluateFormulaCell(c)
。如果单元格包含公式, evaluateInCell 将评估公式,并将公式结果放回单元格中,代替旧公式。
有关详细信息,请参阅evaluator.evaluateInCell(cell)。