POI

POIでのセルの高さ/幅の自動調整

POIでExcelでの列の高さの自動調整ができないものかと調べていました。POIのAPIでは、セルの幅の自動調整については、HSSFSheet#autoSizeColumn()というメソッドがあります。この部分のソースを見てみると、java.awt.font.TextLayoutクラスを使って入力値と…

ワークブック間でシートをコピーする

上記のjXLSにたどり着いたきっかけというのは、POIを使って異なるワークブック間でシートをコピーする方法を調べていてのことでした。 Re: merge worksheets from mutiple xls files jXLSのUtilというクラスに、シートをコピーするcopySheetsがありました。 …

HSSFListenerによるExcelファイルの読み込み(4)

HSSFListenerを使って"eventmode"でExcelファイルを読み込む方法だと、確かに"usermode"で取り込む場合に比べてメモリは少なくて済むようです。ただ、FAQにあるような“10倍以上メモリの消費を抑えてくれます”という程ではなかったです。3分の1程度の感じで…

HSSFListenerによるExcelファイルの読み込み(4)

日付が含まれるセルの場合、processRecord()ではNumberRecordが渡される。その列に対応したFormatRecordのフォーマット形式を確認し(ExtendedFormatRecord経由)、"yyyy/mm/dd"のような形式であった場合には、HSSFDateUtil.getJavaDate(double)にてJavaのDa…

HSSFListenerによるExcelファイルの読み込み(3)

セルごとのフォーマットとprocessRecord()で渡されるRecordクラスの型?? 数字→NumberRecord 文字→LabelSSTRecord boolean→BoolErrRecord

HSSFListenerによるExcelファイルの読み込み(2)

// create a new org.apache.poi.poifs.filesystem.Filesystem POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream("hoge")); // get the Workbook (excel part) stream in a InputStream InputStream din = poifs.createDocumentInputStream…

HSSFListenerによるExcelファイルの読み込み(1)

■How to use the HSSF API(Event APIの部分) このページを参考にHSSFListenerを実装したクラスでイベントドリブン方式でExcelファイルを読み込もうと思ったのですが、データ中にある空っぽのセルの扱い方がよくわからず挫折中…。

POIでOutOfMemoryError

ダイレクトにPOIを使用していたわけではないのですが。SeasarのS2TestCaseクラスでreadXlsWriteDbメソッドを使用してExcel形式テスト用データをDBに取り込もうとしたときに、データが大きすぎるとOutOfMemoryErrorで落ちてしまいます。VM引数の"-Xmx256M"…