倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

PoiBuilder で Quick Guide (12) : ユーザ定義のフォーマットを生成する

今回はユーザ定義のフォーマットの生成 (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')))
        }
    }
}

作成されるスプレッドシート





現場で使えるJavaライブラリ

現場で使えるJavaライブラリ


プログラミングGROOVY

プログラミングGROOVY