POIの3.5-FINALが出ましたよ。
Office2007に対応した(らしい)、POIの3.5-FINALが出ましたよ。これで1,048,576件まで表示できるぞ〜。
が。
毎度ですが、結構変わってます。
Region関連パッケージが変更
セルの範囲を管理する(マージとか)Region周りのパッケージが変更になりました。この変更は地味にでかい・・・。
一応古いクラスも非推奨で残ってはいるんですが、取得するメソッドがないのでどうする事も出来ない。もうちょっと移行パスを考慮して戴きたかった所ではある。
本当はFisshplateも早く3.5対応したかったのですが、これのおかげでずっと保留でした。0.2.0からこっちにします。なので、0.1.xとは互換性がなくなっちゃいます・・・。
HSSFCell#getRitchStringValue()でセルの型が違うと例外投げる
これは3.5じゃなくて3.2からみたいなんですが、前はHSSFCell.getCellType()が CELL_TYPE_STRINGじゃなかった場合、nullを戻してたはず。Fisshplateもそれ前提の実装になってました。
それが、nullじゃなくてIllegalStateExceptionを投げるように変更になってます。まあこっちのが正しくJavaぽいとは思うんですが、被害者が周りにも1名おります。
3.2からはカメラ機能対応してるし、使いたいんだよねぇ・・・。
Fisshplateでちゃんとハンドリングして今までと同じ動きにするようにします。
HSSFRow#getLastCellNum() が行ごとに判定するようになった
3.2までは、その行のA列にしか値が入ってなくても、他の行でもっと先まで値が入ってるとそっちに影響を受けてました。
EXCEL上で、Ctrl+Endを押してフォーカスが当たった場所の列がその値になってたはず。つまりそのシートの全てのセルのうち、最大の値。
なのでFisshplate上でもそれ前提でNullオブジェクトかましたりして回避してたんですが、その必要はなくなったみたいです。恐いので残して置きますが。なので、テストは思い切りOutOfBoundでコケた!
直観的になったと思うので、いいのかなーこれは。