首页 > 解决方案 > 使用 Apache POI 获取 excel 单元格显示值

问题描述

下面显示了突出显示的单元格,它显示为-(连字符)但实际上0在其中具有值。

在此处输入图像描述

这是一个具有以下自定义格式的公式单元格。

在此处输入图像描述

这是一个公式单元格,但当结果为 时0,它显示为-

我的要求是获取-而不是0.

cell2Update = sheet.getRow(4).getCell(3);
cell2Update.setCellType(Cell.CELL_TYPE_NUMERIC);
System.out.println(cell2Update.getStringCellValue());//Exception 
System.out.println(cell2Update.getNumericCellValue());//Display as 0

请帮我解决这个疑问。-我想显示电子表格 ( )中显示的值。

标签: javaexcelexcel-formulaapache-poi

解决方案


使用获取单元格内容DataFormatter中所示的a 。并且因为该值可能是公式的结果。将DataFormatterFormulaEvaluator一起使用:

...
DataFormatter formatter = new DataFormatter(); 
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); 
...
cell2Update = sheet.getRow(4).getCell(3);
...
String value = formatter.formatCellValue(cell2Update, evaluator);
System.out.println(value);
...

推荐阅读