Tag Archives: Excel

Apache POIで複雑なExcelを出力すると破損する

結局、原因不明で調査、作業を終えたのだが、

Apache POIで複雑なExcelを出力すると破損する

という現象が起きた。

複雑なことといっても、デザインをそれなりにいじったことと
1ファイルに4枚のシートを作成したこと。

以下のURLでも同じような現象が起きている。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44883&forum=12
http://d.hatena.ne.jp/kusakari/20071214/1197603134

私の場合、
1シート目から順に値をセットして、計4シートセットした後、
Excelファイルを出力する処理を記述しているのだが、
先に4シート目に値をセットしてから1,2,3シートの順に値をセットすると、
エラー(破損)が発生しなくなった。

たぶんPOIのバグだろう。

ちなみに最新BETA版「poi-bin-3.5-beta6-20090622」だと、
こんな面倒なことは起きないで正常に処理される。
バグを直したってことなのか?

Apache PoiでExcelシートの印刷の向きを横に変更する

ここで初めて知ったのだが、Poiではシートごとに印刷時の設定を編集することができるようだ。

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(Excel.COVER);

HSSFPrintSetup setup = sheet.getPrintSetup();

// 印刷の向きを横か縦に変更
setup.setLandscape(true);

HSSFPrintSetupには、その他印刷系機能が備わっている。
詳しくは以下参考サイトで。

■参考URL
http://blog.goo.ne.jp/fkcalc/e/8b11a8af75898f7c620ac9dda687706a
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html