1. 개요
Excel 시트에서 배경색을 변경하여 표 머리글을 강조 표시하면 항상 우아하게 보입니다. 이 문서에서는 Apache POI 를 사용하여 셀 배경색을 변경하는 방법을 설명합니다 .
또한 Java에서 Excel로 작업하는 기본 사항에 대해 알아보려면 Java에서 Microsoft Excel로 작업 사용방법(예제)를 읽는 것이 좋습니다 .
2. 메이븐 의존성
시작하려면 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 셀 은 패턴으로 채워져 있습니다. 이 패턴에는 검정색 배경과 그 위에 밝은 파란색 반점이 있습니다.
![엑셀세포배경색](https://www.baeldung.com/wp-content/uploads/2021/11/ExcelCellBackgroundColor-300x78-1.png)
3.2. 배경색 변경 코드
Apache POI는 배경색을 변경하는 세 가지 방법을 제공합니다. 이를 위해 CellStyle 클래스에서 setFillForegroundColor , setFillPattern 및 setFillBackgroundColor 메서드를 사용할 수 있습니다. 색상 List은 IndexedColors 클래스에 정의되어 있습니다. 마찬가지로 패턴 List은 FillPatternType 에 정의되어 있습니다 .
때때로 setFillBackgroundColor 라는 이름 이 우리를 오도할 수 있습니다 . 그러나 그 방법 자체는 셀 배경을 변경하기에 충분하지 않습니다. 단색으로 채워 셀 배경을 변경하려면 setFillForegroundColor 및 setFillPattern 메서드를 사용합니다. 첫 번째 방법은 채울 색상을 알려주고 두 번째 방법은 사용할 단색 채우기 패턴을 지정합니다.
다음 스니펫은 셀 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);
}
패턴으로 셀 배경을 변경하려면 두 가지 색상을 사용해야 합니다 . 하나는 전체 배경을 채우는 색상이고 다른 하나는 첫 번째 색상 위에 패턴을 채우는 것입니다. 여기서는 이 세 가지 방법을 모두 사용해야 합니다.
메소드 setFillBackgroundColor 는 여기서 배경색을 지정하는 데 사용됩니다. 이 방법만 사용해서는 아무런 효과가 없습니다. setFillForegroundColor 를 사용 하여 두 번째 색상을 선택하고 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. 결론
이 빠른 사용방법(예제)에서는 Apache POI를 사용하여 Excel 시트에서 셀의 셀 배경을 변경하는 방법을 배웠습니다.
CellStyle 클래스 의 setFillForegroundColor , setFillPattern 및 setFillBackgroundColor 의 세 가지 메서드만 사용하면 셀의 배경색과 채우기 패턴을 쉽게 변경할 수 있습니다.
예제는 GitHub에서 사용할 수 있습니다 .