今回はシートの作成 (New Sheet) です(一覧)。 ファイルへの書き出しを行うコードは今後書きません。
Java コード
Workbook wb = new HSSFWorkbook(); // or new XSSFWorkbook(); Sheet sheet1 = wb.createSheet("new sheet"); Sheet sheet2 = wb.createSheet("second sheet"); // Note that sheet name is Excel must not exceed 31 characters // and must not contain any of the any of the following characters: // 0x0000 // 0x0003 // colon (:) // backslash (\) // asterisk (*) // question mark (?) // forward slash (/) // opening square bracket ([) // closing square bracket (]) // You can use org.apache.poi.ss.util.WorkbookUtil#createSafeSheetName(String nameProposal)} // for a safe way to create valid names, this utility replaces invalid characters with a space (' ') String safeName = WorkbookUtil.createSafeSheetName("[O'Brien's sales*?]"); // returns " O'Brien's sales " Sheet sheet3 = wb.createSheet(safeName);
いくつかの文字はシート名として使えないので、3つ目のシート作成では WorkbookUtil#createSafeSheetName() メソッドを使用しています。
PoiBuilder による構築
workbook ノードの子ノードとして複数の sheet ノードを書けば、その分だけシートが作成されます:
@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') sheet('second sheet') sheet(safeSheetName("O'Brien's sales*?")) }
Workbook#createSheet() メソッド同様、引数なしでシートを作成することもできます(sheet())。 また、Java コードの3つ目のシート作成で呼び出したメソッド WorkbookUtil#createSafeSheetName() は、PoiBuilder に対して safeSheetName() メソッドを呼び出すことで実行できます。 もちろん処理は同じです。
作成されるスプレッドシート
追記
poi-builder 0.0.6 から safeSheetName ノードは削除します。 WorkbookUtil#createSafeSheetName() メソッドが使えなくなるというより sheet ノードに文字列を渡したときに、常にこのメソッドが呼ばれるようにします。
- 作者: 竹添直樹,島本多可子,小津美夕紀,亀井隆司
- 出版社/メーカー: 翔泳社
- 発売日: 2011/07/16
- メディア: 大型本
- 購入: 6人 クリック: 217回
- この商品を含むブログ (20件) を見る
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (152件) を見る