我使用Apache POI创建Excel文件。有两种不同的纸张。 表1是具有一些配方的模板。在工作表2中,我想获取工作表1中一个单元格的值。这是从公式1获取值的Excel公式:
=IF(Sheet1!D7="";"";Sheet1!D7)
但是当我在D7中添加了一些带
的文本时 cell = worksheet1.getRow(6).getCell(3);
cell.setCellValue("SomeText");
它不会接管Sheet 2的值。如果我点击D7并使用enter,Sheet2将获取值,但我想,apache poi执行此操作。
我该如何处理?
答案 0 :(得分:2)
您必须在最终输出之前评估公式。
使用它来评估所有公式。
FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateAll();
使用它来评估特定细胞的公式
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);
然后在流中写入文件