ApachePOIで、Excelのセルに背景色を設定する方法です
サンプルソース
例)A1セルを黄色で塗りつぶす
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PoiSample { public static void main(String[] args) { //Excelデータ生成 Workbook wb = new XSSFWorkbook(); //.xlsx形式ブックの生成 Sheet sh = wb.createSheet(); //シートの生成 Row row = sh.createRow(0); //行の生成 Cell cell= row.createCell(0); //セルの生成 cell.setCellValue("SOLID_FOREGROUND"); //文字のセット //スタイルの生成 CellStyle cellstyle = wb.createCellStyle(); cellstyle.setFillForegroundColor(IndexedColors.YELLOW.index); //色の指定 cellstyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); //塗り潰し cell.setCellStyle(cellstyle); //Excelファイル準備 FileOutputStream out = null; String path = "D:¥¥sample.xlsx"; try { //Excel出力 out = new FileOutputStream(path); wb.write(out); } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); out.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
塗り潰しパターンの種類
塗潰しパターン(FillPatternType)には以下の種類があります。
org.apache.poi.ss.usermodel.FillPatternTypeの種類
- FillPatternType.ALT_BARS
- FillPatternType.BIG_SPOTS
- FillPatternType.BRICKS
- FillPatternType.DIAMONDS
- FillPatternType.FINE_DOTS
- FillPatternType.LEAST_DOTS
- FillPatternType.LESS_DOTS
- FillPatternType.NO_FILL
- FillPatternType.SOLID_FOREGROUND
- FillPatternType.SPARSE_DOTS
- FillPatternType.SQUARES
- FillPatternType.THICK_BACKWARD_DIAG
- FillPatternType.THICK_FORWARD_DIAG
- FillPatternType.THICK_HORZ_BANDS
- FillPatternType.THICK_VERT_BANDS
- FillPatternType.THIN_BACKWARD_DIAG
- FillPatternType.THIN_FORWARD_DIAG
- FillPatternType.THIN_HORZ_BANDS
- FillPatternType.THIN_VERT_BANDS
備考
- セルの背景色をセットするには、背景色を指定したCellStyleオブジェクトを作成して、対象セルに設定するという手順で行います。
- 背景色をセットする時は色だけでなく、塗り潰しのパターンを同時に指定する必要があります。
(塗りつぶしの場合は上記例のように「FillPatternType.SOLID_FOREGROUND」を指定すればOKです。