使用 Apache POI 从 Java 中的 Excel 中读取公式字段
Posted
技术标签:
【中文标题】使用 Apache POI 从 Java 中的 Excel 中读取公式字段【英文标题】:Reading Formula fields from Excel in Java using Apache POI 【发布时间】:2015-04-16 12:55:46 【问题描述】:我正在尝试使用 Apache POI 从 Excel 中读取公式值。我几乎能够完美地读取所有值。我的代码sn-p:
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%。
如何克服这个问题?
【问题讨论】:
您是否尝试过使用DataFormatter? 【参考方案1】:在您的案例 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());
【讨论】:
高兴.. @rajasekhar以上是关于使用 Apache POI 从 Java 中的 Excel 中读取公式字段的主要内容,如果未能解决你的问题,请参考以下文章
缺少Java org.apache.poi.unsupportedfileformatexception
如何使用Java和apache poi选择excel中的所有单元格