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 셀 은 패턴으로 채워져 있습니다. 이 패턴에는 검정색 배경과 그 위에 밝은 파란색 반점이 있습니다.

엑셀세포배경색

3.2. 배경색 변경 코드

Apache POI는 배경색을 변경하는 세 가지 방법을 제공합니다. 이를 위해 CellStyle 클래스에서 setFillForegroundColor , setFillPatternsetFillBackgroundColor 메서드를 사용할 수 있습니다. 색상 List은 IndexedColors 클래스에 정의되어 있습니다. 마찬가지로 패턴 List은 FillPatternType 에 정의되어 있습니다 .

때때로 setFillBackgroundColor 라는 이름 이 우리를 오도할 수 있습니다 . 그러나 그 방법 자체는 셀 배경을 변경하기에 충분하지 않습니다. 단색으로 채워 셀 배경을 변경하려면 setFillForegroundColorsetFillPattern 메서드를 사용합니다. 첫 번째 방법은 채울 색상을 알려주고 두 번째 방법은 사용할 단색 채우기 패턴을 지정합니다.

다음 스니펫은 셀 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 , setFillPatternsetFillBackgroundColor 의 세 가지 메서드만 사용하면 셀의 배경색과 채우기 패턴을 쉽게 변경할 수 있습니다.

예제는 GitHub에서 사용할 수 있습니다 .

Generic footer banner