のHSSFを再び扱うことになってしまった。(前回の記事)
画像を含むexcelをテンプレートとして食わすとシートのコピー時に落ちるらしい。
実際にやってみたが見事に落ちた( 'Д`)
調べてみたら既知の問題らしい。
http://d.hatena.ne.jp/hyperash/20050219#p1 ■[Java]Excelファイルの生成
ソースを見たらRecordでcloneが呼ばれたら例外を投げるようだ。なのでRecordを継承してるクラスがcloneを実装しなければいけないようだが...。ソース見たら実装されてねぇ!?
公式のバグレポート見たらコレに対処するパッチを投げてる人が居たッ。http://issues.apache.org/bugzilla/show_bug.cgi?id=29615
ただいがぴょんの日記v2のこの記事に
2005.02.18時点の最新版を Jakarta の CVSサイトから取得して確認しましたが、やはり動作しなかったです。加えて cloneメソッドを単純に追加しただけでは動作しないことについても確認とりました。
ともあるし、このパッチだけでうまく動くのかどうか...あとビルドし直すのめんどくさいしうーん...と悩む。
とりあえずPOIのversionを2.5から3.0-rc4に上げる。
再びソースを見たが
公式のChange logを見るとさっきのパッチを投げた人がHere's the fix suggested in comment 5, as a patch against 3.0 alpha2.と言っているにもかかわらず、rc4内にパッチのコードは見当たらなかった。ダメな対処法だったのだろうか。
再び公式のバグレポートへ。
やっぱり困ってる人が居たッ!
http://issues.apache.org/bugzilla/show_bug.cgi?id=28744
どうやら現状のPOI HSSFで扱えるタイプと扱えないタイプのexcelファイルが存在するようです。
poiのテストは通るパターンのexcelファイルを添付してくれた人が居たので(comment #7-#14)この添付されたファイルをベースに作り直したら動いたので、まぁイイかぁといった感じに。でもコメントを見てみると更にパッチが。
結論を言うと現状のPOI HSSFは画像ファイルを含んでも一応動くが、まだまだ地雷っぽい。
Additional Comment #6より
Sometimes the images work, sometimes they don't. It's very strange.