今回はユーザ定義のフォーマットの生成 (Create user defined data formats) です(一覧)。
Java コード
ユーザー定義のフォーマットを設定するサンプル:
Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("format sheet"); CellStyle style; DataFormat format = wb.createDataFormat(); Row row; Cell cell; short rowNum = 0; short colNum = 0; row = sheet.createRow(rowNum++); cell = row.createCell(colNum); cell.setCellValue(11111.25); style = wb.createCellStyle(); style.setDataFormat(format.getFormat("0.0")); cell.setCellStyle(style); row = sheet.createRow(rowNum++); cell = row.createCell(colNum); cell.setCellValue(11111.25); style = wb.createCellStyle(); style.setDataFormat(format.getFormat("#,##0.0000")); cell.setCellStyle(style);
ワークブックから DataFormat オブジェクトを生成し(実質的にはフォーマットのファクトリ)、そのオブジェクトからフォーマットを生成するようですね。 フォーマットを指定する文字列に関しては API ドキュメントなどを参照してください。
PoiBuilder による構築
PoiBuilder による構築。 フォーマットを生成するには次の2通りの方法があります:
- 引数なしの dataFormat ノードによって DataFormat オブジェクトを生成し、そこからフォーマットを生成する
- 文字列を引数にした dataFormat ノードによってフォーマットを生成する
2つ目の方法は、フォーマットの生成ごとに DataFormat オブジェクトを生成するので、たくさんのフォーマットを作成する場合は、1つ目の方法で生成した DataFormat オブジェクトを使い回した方がいいでしょう:
@GrabResolver('http://www5.ocn.ne.jp/~coast/repo/') @Grab('org.waman.tools:poi-builder:0.0.5') import org.waman.tools.poi.PoiBuilder def workbook = new PoiBuilder().workbook{ def format = dataFormat() // たくさんのフォーマットを生成するなら DataFormat オブジェクトを使い回そう int rowNum = 0, colNum = 0 sheet('format sheet'){ row(rowNum++){ // DataFormat オブジェクトからフォーマットを生成 cell(colNum, cellValue:11111.25d, cellStyle:cellStyle(dataFormat:format.getFormat('0.0'))) } row(rowNum++){ // dataFormat ノードからフォーマットを生成 cell(colNum, cellValue:11111.25d, cellStyle:cellStyle(dataFormat:dataFormat('#, ##0.0000'))) } } }
作成されるスプレッドシート


- 作者: 竹添直樹,島本多可子,小津美夕紀,亀井隆司
- 出版社/メーカー: 翔泳社
- 発売日: 2011/07/16
- メディア: 大型本
- 購入: 6人 クリック: 217回
- この商品を含むブログ (20件) を見る

- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (152件) を見る