使用 Apache POI 从 Java 中的 Excel 读取公式字段

Reading Formula fields from Excel in Java using Apache POI

我正在尝试使用 Apache POI 从 Excel 中读取公式值。我几乎能够完美地读取所有值。我的代码片段:

case Cell.CELL_TYPE_FORMULA:
        switch(cell.getCachedFormulaResultType()) {
         case Cell.CELL_TYPE_NUMERIC:
           e=cell.getNumericCellValue();
          break;
          case Cell.CELL_TYPE_STRING
           e=cell.getRichStringCellValue();
              break;
           }

这在大多数情况下都可以正常工作,例如整数和浮点值,但是当公式使用 % 时就会出现问题。

公式=1234-1200时读数=34
但是当公式=100%-40% 时,它的读数是=0.6 但不是60%。

如何克服这个问题?

在你的案例中尝试这样的事情 Cell.CELL_TYPE_NUMERIC: 声明

if (cell.getCellStyle().getDataFormatString().contains("%")) {
    // Detect Percent Values 
    Double value = cell.getNumericCellValue() * 100;
    System.out.println("Percent value found = " + value.toString() +"%");
} else {
    Double value = cell.getNumericCellValue();
    System.out.println("Non percent value found = " + value.toString());
}