Jakarta POIをとりあえず使ってみる
最近、仕事でExcelでデータを入力したものをサーバにアップしたり、DBのデータを書き込んだExcelファイルをダウンロードさせたり、また、VBAを使ってガリガリExcel内で処理させたり…といった内容のものをチームでやっている。
ってことで、まだ使うか分からないんだが、ひとまずJavaでExcel操作ということでJakarta POIのさわりを弄ってみた。buzzwordさんのjavadriveに分かりやすくまとまっていたので、参考にした。Javaでそのままやっても面白みに欠けるんで、例によってGroovyで操ることにしてみた。*1
新規ブックを作ってセルに値を書き込む
import org.apache.poi.hssf.usermodel.HSSFWorkbook /* ブック作成 */ def book = new HSSFWorkbook() /* シート作成 */ def sheet = book.createSheet("Sheet1") /* 行作成 */ def row = sheet.createRow(2) /* セルに値を指定 */ row.createCell(0).setCellValue("test") row.createCell(1).setCellValue("日本語も入力できる") /* ファイル出力 */ book.write(new FileOutputStream("test.xls"))
結果:test.xls
Groovyだと例外処理とかを省略省略できてコードの見通しが良くなっていいですね。javadriveだと日本語を使う時に "HSSFWorkbook.ENCODING_UTF_16" を指定してねと書いてあったが、バージョンが上がったからなのか、上記ソースで示したようにエンコーディング指定しなくても使えた。上記ソースは単純に新規ブックを作ってセルに値を書き込んだだけですが、javadriveさんにはもうちょっといろいろと書かれていますよ。POIはなかなか使えそうなAPIだなと思った。
*1:[http://d.hatena.ne.jp/fumokmm/20080827/1219852663:title]の方法その3:ホームディレクトリにじかに置くの方法で、POI関連のJarを置いて実行しています。poi-3.2-FINAL-20081019.jar