我遇到了 POI 和公式评估器的奇怪问题。我已经做了很多时间,但是由于某种原因,以下公式失败了,让我很头疼。
公式:=IF(B12=0, B9, 0)
在我的工作表中,B12 为零,而 B9 实际上是一个填充数字。
当我尝试检查 switch(cell.getCachedFormulaResultType()) 时,单元格类型返回为 CELL_TYPE_STRING。然而,richstringvalue 为空。
然后我尝试通过以下方式执行计算:
FormulaEvaluator evaluator = cell.getSheet().getWorkbook().getCreationHelper().createFormulaEvaluator();
但得到一个:XmlValueDisconnectedException。
根据支持的函数列表,IF 应该是微不足道的。
谁能提供任何其他建议,我很难过,例外是没有意义的:(
痕迹:
org.apache.xmlbeans.impl.values.XmlValueDisconnectedException
at org.apache.xmlbeans.impl.values.XmlObjectBase.check_orphaned(XmlObjectBase.java:1244)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTDefinedNameImpl.getName(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFName.getNameName(XSSFName.java:133)
at org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.getName(XSSFEvaluationWorkbook.java:84)