[java] Apache POI를 사용하여 Excel 파일의 셀 배경색 읽기

Apache POI는 Java에서 Microsoft Office 파일을 조작하는 데 사용되는 인기있는 라이브러리입니다. 이 라이브러리를 사용하여 Excel 파일의 셀 배경색을 읽을 수 있습니다.

Apache POI 라이브러리 추가

먼저, Apache POI 라이브러리를 프로젝트에 추가해야 합니다. 프로젝트의 build.gradle 파일에 아래의 의존성을 추가합니다.

dependencies {
    implementation 'org.apache.poi:poi:5.0.0'
}

Excel 파일 읽기 코드 작성

아래는 Apache POI를 사용하여 Excel 파일의 셀 배경색을 읽는 예시 코드입니다.

import org.apache.poi.ss.usermodel.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ExcelCellBackgroundColorReader {

    public static void main(String[] args) {
        try {
            // 읽을 Excel 파일 경로 지정
            String filePath = "path/to/excel/file.xlsx";

            // Excel 파일 로드
            FileInputStream fileInputStream = new FileInputStream(new File(filePath));
            Workbook workbook = WorkbookFactory.create(fileInputStream);

            // 첫 번째 시트 선택
            Sheet sheet = workbook.getSheetAt(0);

            // 각 행 순회
            for (Row row : sheet) {
                // 각 셀 순회
                for (Cell cell : row) {
                    // 셀 배경색 가져오기
                    CellStyle cellStyle = cell.getCellStyle();
                    Color backgroundColor = cellStyle.getFillForegroundColorColor();

                    // 배경색 확인
                    if (backgroundColor instanceof XSSFColor) {
                        XSSFColor xssfColor = (XSSFColor) backgroundColor;
                        byte[] rgb = xssfColor.getRgb();

                        // RGB 값 출력
                        System.out.println("Cell background color RGB: " + rgb[0] + ", " + rgb[1] + ", " + rgb[2]);
                    } else {
                        System.out.println("Cell background color: Not a valid RGB color");
                    }
                }
            }

            // 파일 및 리소스 정리
            workbook.close();
            fileInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드를 실행하면 지정된 Excel 파일의 모든 셀의 배경색을 읽어와서 RGB 값으로 출력합니다.

참고 자료