java - 在 getCellFormula 中获取结果

标签 java excel

我正在用java读取Excel,在我的单元格中我有一个公式,但我想得到结果 -> 20.000 或 2.154 等,但我得到 ->

IF(F2="买入",+(H2-G2+1)*I2,+(H2-G2+1)I2(-1))

<小时/>
switch (cell.getCellType()) {

    case Cell.CELL_TYPE_FORMULA:
        stringValue = cell.getCellFormula();
    break;

...

问题是我无法计算这个公式,因为我读取了Excel单元格然后...h2-g2...我的代码不知道这一点...

我正在使用

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.15</version>
</dependency>

如何获取单元格的值?

Cell.CELL_TYPE_FORMULA: ---> IF(F2="Buy",+(H2-G2+1)*I2,+(H2-G2+1)*I2*(-1))
Cell.CELL_TYPE_STRING: ----> IF(F2="Buy",+(H2-G2+1)*I2,+(H2-G2+1)*I2*(-1))

谢谢!!

编辑, 我改变了->

case Cell.CELL_TYPE_FORMULA:
    stringValue = String.valueOf(cell.getNumericCellValue());
break;

结果 -> 5.475E7 这个结果很糟糕,我的 Excel 视觉上有54.750.000

最佳答案

您获得的值是正确的,所以您已经差不多了,只是格式不符合您的预期。

尝试:

    String stringValue = NumberFormat.getNumberInstance().format(cell.getNumericCellValue());

关于java - 在 getCellFormula 中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52611966/

相关文章:

doInBackground 中的 Java NullPointer 异常

java - 无需序列化的深度克隆

r - 如何在excel中将数字转换为日期时间格式(我在R中实现了等效的解决方案)

sql - 从sql导出到excel

java - 使用方法引用而不是多参数 lambda

java - 方法链接的优点和缺点以及用对象本身替换所有 void 返回参数的可能性

Java - 循环性能下降

vba - VBA 中的错误处理 - 错误继续下一步

python - 在python pandas中动态跳过excel的顶部空白行

java - 写入 Excel 文件时出现问题 (Apache POI)