ApachePOIでセルの背景色を設定する
1. 概要
Excelシートでは、背景色を変更してテーブルヘッダーを強調表示すると、常にエレガントに見えます。 この記事では、 ApachePOIを使用してセルの背景色を変更する方法について説明します。
また、JavaでのMicrosoftExcelの操作チュートリアルを読んで、JavaでのExcelの操作の基本を学ぶことをお勧めします。
2. Mavenの依存関係
開始するには、pom.xmlの依存関係としてpoi-ooxmlを追加する必要があります。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.0</version>
</dependency>
3. セルの背景色の変更
3.1. セルの背景について
エクセルシートでは、色や模様を塗りつぶすだけでセルの背景を変えることができます。 次の画像では、セル A1 は水色の背景で塗りつぶされていますが、セルB1はパターンで塗りつぶされています。 このパターンの背景は黒で、その上に水色の斑点があります。
3.2. 背景色を変更するためのコード
Apache POIは、背景色を変更するための3つの方法を提供します。 CellStyle クラスでは、この目的のために setFillForegroundColor 、 setFillPattern 、およびsetFillBackgroundColorメソッドを使用できます。 色のリストは、IndexedColorsクラスで定義されています。 同様に、パターンのリストはFillPatternTypeで定義されています。
時には、setFillBackgroundColorという名前が私たちを誤解させる可能性があります。 しかし、その方法自体は、セルのバックグラウンドを変更するには十分ではありません。 単色で塗りつぶしてセルの背景を変更するには、setFillForegroundColorメソッドとsetFillPatternメソッドを使用します。 最初の方法は塗りつぶす色を指定し、2番目の方法は使用する塗りつぶしパターンを指定します。
次のスニペットは、セルA1に示されているようにセルの背景を変更する方法の例です。
public void changeCellBackgroundColor(Cell cell) {
CellStyle cellStyle = cell.getCellStyle();
if(cellStyle == null) {
cellStyle = cell.getSheet().getWorkbook().createCellStyle();
}
cellStyle.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(cellStyle);
}
セルの背景をパターンで変更するには、2つの色を使用する必要があります。1つは背景全体を塗りつぶし、もう1つは最初の色の上にパターンを塗りつぶします。 ここでは、これら3つの方法すべてを使用する必要があります。
ここでは、メソッドsetFillBackgroundColorを使用して背景色を指定します。 この方法だけでは効果はありません。 setFillForegroundColor を使用して2番目の色を選択し、setFillPatternを使用してパターンタイプを指定する必要があります。
次のスニペットは、セルB1に示されているようにセルの背景を変更する方法の例です。
public void changeCellBackgroundColorWithPattern(Cell cell) {
CellStyle cellStyle = cell.getCellStyle();
if(cellStyle == null) {
cellStyle = cell.getSheet().getWorkbook().createCellStyle();
}
cellStyle.setFillBackgroundColor(IndexedColors.BLACK.index);
cellStyle.setFillPattern(FillPatternType.BIG_SPOTS);
cellStyle.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());
cell.setCellStyle(cellStyle);
}
コードの詳細については、Javaクラス全体および関連するJUnitテストケースを参照してください。
4. 結論
このクイックチュートリアルでは、ApachePOIを使用してExcelシートのセルのセル背景を変更する方法を学習しました。
CellStyleクラスのsetFillForegroundColor、 setFillPattern 、 setFillBackgroundColor の3つのメソッドのみを使用して、セルの背景色と塗りつぶしを簡単に変更できます。パターン。
例は、GitHubでから入手できます。