使用Apache POI获取excel单元格显示值

时间:2019-02-11 12:37:40

标签: java excel excel-formula apache-poi

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

enter image description here

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

enter image description here

这是一个公式单元格,但是当结果为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

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

1 个答案:

答案 0 :(得分:1)

使用Getting the cell contents中所示的DataFormatter。并且因为该值可能是公式的结果。结合使用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);
...