[java] Apache POI를 사용하여 Excel 파일의 셀 유형 읽기

Apache POI는 Java에서 Microsoft Office 파일을 다룰 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 Java로 Excel 파일을 편집, 생성 및 읽기 등 다양한 작업을 수행할 수 있습니다. 이번 포스트에서는 Apache POI를 사용하여 Excel 파일의 셀 유형을 읽는 방법에 대해 알아보도록 하겠습니다.

1. Apache POI 의존성 추가하기

Apache POI를 사용하기 위해 프로젝트에 해당 의존성을 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    implementation 'org.apache.poi:poi:4.1.2'
    implementation 'org.apache.poi:poi-ooxml:4.1.2'
}

2. Excel 파일에서 셀 유형 읽기

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

public class ExcelCellTypeReader {
    public static void main(String[] args) {
        try {
            // Excel 파일 로드
            Workbook workbook = WorkbookFactory.create(new File("파일경로/파일이름.xlsx"));

            // 첫 번째 시트 가져오기
            Sheet sheet = workbook.getSheetAt(0);

            // 셀마다 유형 읽기
            for (Row row : sheet) {
                for (Cell cell : row) {
                    CellType cellType = cell.getCellType();

                    // 유형별로 처리
                    switch (cellType) {
                        case STRING:
                            System.out.println("문자열 셀: " + cell.getStringCellValue());
                            break;
                        case NUMERIC:
                            System.out.println("숫자 셀: " + cell.getNumericCellValue());
                            break;
                        case BOOLEAN:
                            System.out.println("부울 셀: " + cell.getBooleanCellValue());
                            break;
                        case BLANK:
                            System.out.println("빈 셀");
                            break;
                        case ERROR:
                            System.out.println("에러 셀: " + cell.getErrorCellValue());
                            break;
                    }
                }
            }

            // Workbook 닫기
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 WorkbookFactory.create() 메소드를 사용하여 Excel 파일을 로드하고, getSheetAt(0)를 통해 첫 번째 시트를 가져옵니다. 그런 다음 중첩된 for 루프를 사용하여 각 셀의 유형을 확인하고 해당 유형에 따라 처리합니다. 마지막으로 close()를 호출하여 Workbook을 닫아 메모리를 정리합니다.

3. 실행 결과

위의 예제 코드를 실행하면 Excel 파일의 각 셀 유형에 따라 다른 결과가 출력됩니다. 이를 통해 Excel 파일의 내용을 Java에서 쉽게 읽을 수 있습니다.

참고 자료