java中获取到excel中的数据不是数据是公式怎么办
如果在Java中使用POI库读取Excel文件时,遇到公式单元格返回的不是计算后的值而是公式本身,可以通过以下方法获取计算后的值:
- 使用
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();
}
}
- 在Excel文件中设置公式单元格的计算模式为自动计算。打开Excel文件,点击"文件" -> "选项" -> "公式",勾选"自动计算",然后保存文件。
以上方法可用于获取公式计算结果,如果不需要计算结果而是要获取公式本身,可以使用cell.getCellFormula()方法
原文地址: https://www.cveoy.top/t/topic/iQzV 著作权归作者所有。请勿转载和采集!