java - 使用 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
请帮我解决这个疑问。-
我想显示电子表格 ( )中显示的值。
解决方案
使用获取单元格内容DataFormatter
中所示的a 。并且因为该值可能是公式的结果。将DataFormatter与FormulaEvaluator一起使用:
...
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);
...
推荐阅读
- python - 自定义张量流模型的 OOP 版本如何工作
- couchbase - N1QL 中的 REGEXP_CONTAINS 和 REGEXP_LIKE 有什么区别?
- python - Python - 计算所需的自然数个数
- tensorflow - 可视化增强的火车图像 [tensorflow object detection api]
- python - Python:为什么即使没有指示,列表值也会改变?
- python-3.x - 在列表理解中引发异常:语法无效
- html - 如何使用 flex 在父 div 内的 2 个兄弟 div 旁边设置 1 个 div?
- azure - 无法坚持使用 SSL 应用程序网关重定向的自定义域
- python - 如何使用 python 为原始音频信号添加不同级别的音频分贝(dB)噪声?
- c# - 使用 EditorFor 时,日期默认为“dd/mm/yyyy”