POI と定式化エバリュエーターで奇妙な問題が発生しています。私はこれを何度も行ってきましたが、何らかの理由で次の式が失敗し、頭が痛くなります。
式: =IF(B12=0, B9, 0)
私のシートの場合、B12 は 0 で、B9 は実際には塗りつぶされた数字です。
switch(cell.getCachedFormulaResultType()) を確認しようとすると、セル タイプが CELL_TYPE_STRING として返されます。ただし、richstringvalue は null です。
次に、次の方法で計算を実行しようとします。
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)