问题描述
我使用Apache POI创建Excel文件。 有两个不同的表。 表格1是带有一些公式的模板。 在工作表2中,我想获取工作表1中一个单元格的值。这是从工作表1中获取值的Excel公式:
=IF(Sheet1!D7="";"";Sheet1!D7)
但是当我在D7中输入一些文字时
cell = worksheet1.getRow(6).getCell(3);
cell.setCellValue("SomeText");
它不会接管工作表2的值。如果我单击D7并使用enter,Sheet2将接管该值,但是我想让该Apache Poi执行此操作。
我该如何处理?
1楼
您必须在最终输出之前评估公式。
使用此为了评估所有公式。
FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateAll();
使用它来评估特定单元格的公式
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);
然后在流中写入文件