我尝试将单元格中的值作为字符串读取(就像在Excel中看到的那样)。我使用Apache POI 3.15从xlsx(XSSFWorkbook
)读取。
我的目标是如果单元格包含整数,则省略小数点和尾随零。这适用于CellType.NUMERIC
:
val dataFormatter = new DataFormatter(true) // set emulateCsv to true
val stringValue = dataFormatter.formatCellValue(cell)
如果我对CellType.FORMULA
单元使用相同的代码(例如,引用另一个&#34;整数&#34;单元格的单元格),它只是将公式作为字符串而不是其计算值。< / p>
如何获得Excel显示中显示的公式单元格的值?
答案 0 :(得分:0)
你需要&#34;评估&#34;单元格以获得公式的结果。这不是由POI自动完成的,因为它可能是繁重的操作,通常是没有必要的。
有关详细信息,请参阅http://poi.apache.org/spreadsheet/eval.html,基本上您为相关单元格创建FormulaEvaluator
并检索CellValue
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
...
CellValue cellValue = evaluator.evaluate(cell);