関です。お世話になっております。
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 以降への対応などは進められていますでしょうか。