倭マン's BLOG

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

PoiBuilder で Quick Guide (3) : セルを作成

今回はセルの作成 (Creating Cells) です(一覧)。

Java コード

    Workbook wb = new HSSFWorkbook();
    //Workbook wb = new XSSFWorkbook();
    CreationHelper createHelper = wb.getCreationHelper();
    Sheet sheet = wb.createSheet("new sheet");

    // Create a row and put some cells in it. Rows are 0 based.
    Row row = sheet.createRow((short)0);
    // Create a cell and put a value in it.
    Cell cell = row.createCell(0);
    cell.setCellValue(1);

    // Or do it on one line.
    row.createCell(1).setCellValue(1.2);
    row.createCell(2).setCellValue(
         createHelper.createRichTextString("This is a string"));
    row.createCell(3).setCellValue(true);

セルを作るにはまず行 (Row) を作成する必要があります。 セルや行を作成する際にインデックスも必要です。

PoiBuilder による構築


PoiBuilder でも Apache POI のオブジェクトモデルは変わらないので「workbook → sheet → row → cell」の順に構築していきます。 row ノード、cell ノードに渡している値はインデックスに使われます。

@GrabResolver('http://www5.ocn.ne.jp/~coast/repo/')
@Grab('org.waman.tools:poi-builder:0.0.3')

import org.waman.tools.poi.PoiBuilder

def workbook = new PoiBuilder().workbook{
    sheet('new sheet'){
        row(0){
            cell(0){
                cellValue(1)
            }
            cell(1, cellValue:1.2d)
            cell(2, cellValue:richTextString('This is a string'))    // RichTextString の生成も簡単
            cell(3, cellValue:true)
        }
    }
}

セルの値 (cell value) は

  • cell ノードの子ノードとして cellValue ノードを書く
  • cell ノードの属性として cellValue 属性を書く

によって設定できます。 Java コードにある CreationHelper オブジェクトはビルダーの creationHelper プロパティによって取得できますが、このサンプルでは CreationHelper オブジェクトを介さずに richTextString ノードによって RichTextString を生成しています。

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





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

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


プログラミングGROOVY

プログラミングGROOVY