下载后Apache POI初始计算公式
Apache POI initial calculation of formula after download
我使用 Apache POI 创建了一个 Excel 文件。有两张不同的床单。
Sheet 1 是一个带有一些公式的模板。在 Sheet 2 中,我想获取 Sheet 1 中一个单元格的值。这是从 Sheet 1:[=12 中获取值的 Excel-公式=]
=IF(Sheet1!D7="";"";Sheet1!D7)
但是当我用
在 D7 中放入一些文本时
cell = worksheet1.getRow(6).getCell(3);
cell.setCellValue("SomeText");
它不会接管 Sheet 2 的值。如果我单击 D7 并使用回车,Sheet2 将采用该值,但我希望 apache poi 执行此操作。
我该如何处理?
您必须在最终输出之前评估公式。
使用它来计算所有公式。
FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateAll();
使用它来评估特定单元格的公式
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);
然后在流中写入文件
我使用 Apache POI 创建了一个 Excel 文件。有两张不同的床单。 Sheet 1 是一个带有一些公式的模板。在 Sheet 2 中,我想获取 Sheet 1 中一个单元格的值。这是从 Sheet 1:[=12 中获取值的 Excel-公式=]
=IF(Sheet1!D7="";"";Sheet1!D7)
但是当我用
在 D7 中放入一些文本时 cell = worksheet1.getRow(6).getCell(3);
cell.setCellValue("SomeText");
它不会接管 Sheet 2 的值。如果我单击 D7 并使用回车,Sheet2 将采用该值,但我希望 apache poi 执行此操作。
我该如何处理?
您必须在最终输出之前评估公式。
使用它来计算所有公式。
FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateAll();
使用它来评估特定单元格的公式
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateFormulaCell(cell);
然后在流中写入文件