Apache POI 公式未计算

excel

1个回答

写回答

www115218

2025-06-28 22:50

+ 关注

Java
Java

Apache POI 公式未计算

Apache POI 是一个用于操作 Microsoft Office 格式文件的开源 Java 库。它可以用于读取、写入和操作 excel、word 和 PowerPoint 文件。其中,对于 excel 文件的处理,Apache POI 提供了强大的功能,包括公式计算。然而,有时候我们可能会遇到公式未计算的情况。

在使用 Apache POI 处理 excel 文件时,我们经常需要对公式进行计算,以获取正确的结果。然而,有时候我们可能会遇到公式未计算的情况,导致得到的结果不符合预期。这可能是由于我们在读取或写入 excel 文件时没有正确设置公式计算的选项。

在 Apache POI 中,我们可以通过设置 FormulaEvaluator 来实现公式的计算。FormulaEvaluator 是一个用于计算 excel 公式的接口,它可以对单元格中的公式进行求值,并返回计算结果。在读取 excel 文件时,我们需要通过 FormulaEvaluator 来计算公式,以获取正确的结果。

以下是一个使用 Apache POI 计算 excel 公式的简单示例:

Java

import org.apache.poi.ss.usermodel.*;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import Java.io.FileInputStream;

import Java.io.FileOutputStream;

import Java.io.IOException;

public class excelFormulaCalculationExample {

public static void mAIn(String[] args) {

try (FileInputStream file = new FileInputStream("input.xlsx");

Workbook workbook = new XSSFWorkbook(file)) {

Sheet sheet = workbook.getSheetAt(0);

FormulaEvaluator evaluator = workbook.getcreationHelper().createFormulaEvaluator();

for (Row row : sheet) {

for (Cell cell : row) {

if (cell.getcellType() == CellType.FORMULA) {

CellValue cellValue = evaluator.evaluate(cell);

System.out.println("Formula: " + cell.getcellFormula());

System.out.println("Value: " + cellValue.getNumberValue());

}

}

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

在上述示例中,我们首先通过 FileInputStream 加载 excel 文件,然后创建 XSSFWorkbook 对象表示该文件。接下来,我们获取第一个工作表,并创建 FormulaEvaluator 对象。然后,我们遍历每个单元格,如果单元格的类型是公式类型,就使用 FormulaEvaluator 计算公式,并打印公式和计算结果。

通过以上的代码示例,我们可以实现对 excel 文件中公式的计算,确保得到正确的结果。这样,我们就能够更灵活地处理 excel 文件中包含公式的数据。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号