diff --git a/src/main/java/com/dsideal/base/Test/ReadDoc.java b/src/main/java/com/dsideal/base/Test/ReadDoc.java index 05f9f964..24a5ea2c 100644 --- a/src/main/java/com/dsideal/base/Test/ReadDoc.java +++ b/src/main/java/com/dsideal/base/Test/ReadDoc.java @@ -3,10 +3,10 @@ package com.dsideal.base.Test; import cn.hutool.core.io.FileUtil; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.util.ZipSecureFile; -import org.apache.poi.xssf.usermodel.XSSFCell; -import org.apache.poi.xssf.usermodel.XSSFRow; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.CellValue; +import org.apache.poi.ss.usermodel.FormulaEvaluator; +import org.apache.poi.xssf.usermodel.*; import org.apache.poi.xwpf.usermodel.XWPFChart; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; @@ -56,6 +56,17 @@ public class ReadDoc { for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) { //遍历列 XSSFCell cell = row.getCell(j); + // 创建公式计算器 + FormulaEvaluator evaluator = new XSSFFormulaEvaluator(workbook); + + // 检查单元格是否包含公式 + if (cell!=null && cell.getCellType() == CellType.FORMULA) { + // 计算公式并获取结果 + CellValue evaluatedValue = evaluator.evaluate(cell); + System.out.println("Calculated Value: " + evaluatedValue.formatAsString()); + } else { + System.out.println("Cell does not contain a formula."); + } if (cell != null) System.out.print(cell + " "); else {