POI 3.11 以降の対応状況について確認

477 views
Skip to first unread message

seki

unread,
Aug 19, 2015, 7:15:04 AM8/19/15
to excella
関です。お世話になっております。

POIのバージョンがだいぶ上がっていますので、ExCella Reportsの動作確認を行ってみました。
それで 3.10.1 までは大丈夫だったのですが 3.11 から BlockRowRepeatParamParser で
以下の例外が発生するようになってしまいました。(3.12も同様です。)

Caused by: java.lang.IllegalArgumentException: lastRow < firstRow || lastCol < firstCol
 at org
.apache.poi.ss.util.CellRangeAddress.<init>(CellRangeAddress.java:53)
 at org
.bbreak.excella.reports.tag.BlockRowRepeatParamParser.parse(BlockRowRepeatParamParser.java:473)
 
... 29 more
Sheet[Quotation] Cell[16,0] Message[java.lang.IllegalArgumentException: lastRow < firstRow || lastCol < firstCol] Cause[java.lang.IllegalArgumentException: lastRow < firstRow || lastCol < firstCol]
 at org
.bbreak.excella.reports.tag.BlockRowRepeatParamParser.parse(BlockRowRepeatParamParser.java:502)
 at org
.bbreak.excella.reports.tag.BlockRowRepeatParamParser.parse(BlockRowRepeatParamParser.java:57)

原因を調べてみましたところ 3.11 から CellRangeAddress のコンストラクタの52~53行目に
「if (lastRow < firstRow || lastCol < firstCol)」のチェックが追加された為でした。

 public CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol) {
 
super(firstRow, lastRow, firstCol, lastCol);
 
 
if (lastRow < firstRow || lastCol < firstCol)
   
throw new IllegalArgumentException("lastRow < firstRow || lastCol < firstCol");
 
}

BlockRowRepeatParamParserの473行目からの処理を改善する必要がありそうなのですが、
POI 3.11 以降への対応などは進められていますでしょうか。

kamisono

unread,
Aug 19, 2015, 8:53:51 PM8/19/15
to excella
神園です。

最新版に対応しようとは考えているのですが、まだ手が付いていない状態でした。
情報の方、ありがとうございます。
調査してみないと何とも言えないのですが、利用できるようにはしたいと思います。

2015年8月19日水曜日 20時15分04秒 UTC+9 seki:

seki

unread,
Aug 19, 2015, 9:22:32 PM8/19/15
to excella
関です。返信ありがとうございます。

今のところは 3.10.1 で運用には支障はありませんので、最新版への対応は急ぎではありません。
折を見て対応していただければと思います。

2015年8月20日木曜日 9時53分51秒 UTC+9 kamisono:
Reply all
Reply to author
Forward
0 new messages