今回はセル内の塗り方のパターンと色 (Fills and colors) です(一覧)。
Java コード
セル内の色の塗り方と色を設定するサンプル。
Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); // Create a row and put some cells in it. Rows are 0 based. Row row = sheet.createRow((short) 1); // Aqua background CellStyle style = wb.createCellStyle(); style.setFillBackgroundColor(IndexedColors.AQUA.getIndex()); style.setFillPattern(CellStyle.BIG_SPOTS); Cell cell = row.createCell((short) 1); cell.setCellValue("X"); cell.setCellStyle(style); // Orange "foreground", foreground being the fill foreground not the font color. style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.ORANGE.getIndex()); style.setFillPattern(CellStyle.SOLID_FOREGROUND); cell = row.createCell((short) 2); cell.setCellValue("X"); cell.setCellStyle(style);
PoiBuilder による構築
PoiBuilder による構築。 今までのサンプルと大して変わりません。
@GrabResolver('http://www5.ocn.ne.jp/~coast/repo/') @Grab('org.waman.tools:poi-builder:0.0.4') @Grab('org.apache.poi:poi-ooxml:3.8-beta3') import org.waman.tools.poi.PoiBuilder import org.apache.poi.xssf.usermodel.XSSFWorkbook def builder = new PoiBuilder() def workbook = builder.workbook(new XSSFWorkbook()){ sheet('new sheet'){ row(1){ cell(1, cellValue:'X', cellStyle:cellStyle(fillBackgroundColor:AQUA, fillPattern:BIG_SPOTS)) cell(2, cellValue:'X', cellStyle:cellStyle(fillForegroundColor:ORANGE, fillPattern:SOLID_FOREGROUND)) } } }
このサンプルでは、Java コードと同様に XSSFWorksheet に対して構築を行ってますが、HSSFWorksheet に対して行うといまいち色がきちんと描画されないようです。 色に関してはまた後ほど出てくるのでそこで考えます。
作成されるスプレッドシート
塗パターンあれこれ
塗パターンをあれこれ変えてセルを塗りつぶしてみました。
色はすべてのセルで同じ BLUE をセットしています。 表示させているのは LibreOffice ですが*1、色の濃さが変わってるだけですね。 Excel で表示させればまた違うんでしょうけど。
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (152件) を見る
*1:拙者の PC に Excel 入ってないので ^ ^;)