如果在Java中使用POI库读取Excel文件时,遇到公式单元格返回的不是计算后的值而是公式本身,可以通过以下方法获取计算后的值:

  1. 使用CellType判断单元格类型,如果是公式类型,则使用evaluate()方法计算公式并获取计算结果。示例代码如下:
import org.apache.poi.ss.usermodel.*;

public class ReadExcel {
    public static void main(String[] args) throws Exception {
        // 读取Excel文件
        Workbook workbook = WorkbookFactory.create(new File("example.xlsx"));
        Sheet sheet = workbook.getSheetAt(0);

        // 遍历每一行
        for (Row row : sheet) {
            // 遍历每个单元格
            for (Cell cell : row) {
                if (cell.getCellType() == CellType.FORMULA) {
                    // 如果是公式类型,则计算并获取结果
                    FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                    CellValue cellValue = evaluator.evaluate(cell);
                    System.out.print(cellValue.getNumberValue() + " ");
                } else {
                    // 如果不是公式类型,则直接获取值
                    System.out.print(cell.toString() + " ");
                }
            }
            System.out.println();
        }

        workbook.close();
    }
}
  1. 在Excel文件中设置公式单元格的计算模式为自动计算。打开Excel文件,点击"文件" -> "选项" -> "公式",勾选"自动计算",然后保存文件。

以上方法可用于获取公式计算结果,如果不需要计算结果而是要获取公式本身,可以使用cell.getCellFormula()方法

java中获取到excel中的数据不是数据是公式怎么办

原文地址: https://www.cveoy.top/t/topic/iQzV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录