今回はシートの印刷領域のセット (Set print area for a sheet) です(一覧)。
Java コード
印刷領域を設定するには、Workbook オブジェクトに対して setPrintArea() メソッドを呼び出します:
Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("Sheet1"); //sets the print area for the first sheet wb.setPrintArea(0, "$A$1:$C$2"); //Alternatively: wb.setPrintArea( 0, //sheet index 0, //start column 1, //end column 0, //start row 0 //end row );
範囲を指定するには、文字列で指定する方法($A$1:$C:$2)と、インデックスで指定する方法の2通りがあります。
PoiBuilder による構築
PoiBuilder では、印刷領域の設定は printArea ノードで行います
@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{ sheet('Sheet1') printArea(0, '$A$1:$C$2') // Alternatively // printArea(0, 0, 1, 0, 0) }
sheet ノード下、もしくは属性で書くと第1引数を書かなくてもいい気がしますが、今のところそうなっていません。 今後改善。
作成されるスプレッドシート
追記
printArea ノードに渡す引数が分かりにくいので、poi-builder 0.0.6 からもう少し簡単に範囲を指定できるようにしました:
@GrabResolver('http://www5.ocn.ne.jp/~coast/repo/') @Grab('org.waman.tools:poi-builder:0.0.6') import org.waman.tools.poi.SpreadsheetBuilder def workbook = new SpreadsheetBuilder().workbook{ sheet('Sheet1'){ row(0){ cell(0, cellValue:1) } } // (1) int 値4つから範囲を指定 引数の順番注意 // 第1引数はシート名ではなくシート番号でも可。 以下同様。 printArea('Sheet1', 0, 2, 0, 1) // (2) String で範囲を指定 '$A$1:$C$2' でも可 printArea('Sheet1', 'A1:C2') // (3) 属性 row, column で範囲を指定 属性値は IntRange printArea('Sheet1', column:0..2, row:0..1) // (4) cellRangeAddress ノードによって CellRangeAddress オブジェクトを生成 printArea('Sheet1', cellRangeAddress(column:0..2, row:0..1)) }
どの方法でも、第1引数は文字列ならシート名、int 値ならシート番号とみなしてシートをしていします。 それ以降の引数(もしくは属性)は領域の範囲を指定します。 範囲指定を行う方法は
- int 値4つによる範囲指定。 Workbook#setPrintArea() メソッドと同様、第2引数以降の順番は
(最初の列, 最後の列, 最初の行, 最後の行)
となっています。 - String による範囲指定。 'A1:C2' や '$A$1:$C$2' のようなもの。
- row, column 属性による範囲指定。 属性値は IntRange
- CellRangeAddress オブジェクトによる指定
です。 下2つは cellRangeAddress ノードも参照(→)。 また、最初の int 値4つによる範囲の指定と cellRangeAddress ノードに渡して範囲を指定する int 値4つは順序が違うので注意。 これは Apache POI に合わせてます。 紛らわしい場合は String による指定か、row, column 属性による指定を使うといいかと思います。
- 作者: 竹添直樹,島本多可子,小津美夕紀,亀井隆司
- 出版社/メーカー: 翔泳社
- 発売日: 2011/07/16
- メディア: 大型本
- 購入: 6人 クリック: 217回
- この商品を含むブログ (20件) を見る
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (152件) を見る