[java] Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 메시지 읽기

Apache POI는 Java에서 Excel 파일을 다루는 데 사용되는 인기있는 라이브러리입니다. 이 라이브러리를 사용하면 Excel 파일의 내용을 읽고 수정할 수 있으며, 데이터 유효성 검사 메시지와 같은 특정 정보를 추출할 수도 있습니다.

이번 글에서는 Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 메시지를 읽는 방법에 대해 알아보겠습니다.

1. Apache POI 라이브러리 추가

먼저, Maven이나 Gradle과 같은 빌드 도구를 사용하여 Apache POI 라이브러리를 프로젝트에 추가해야 합니다. 아래는 Maven을 사용하는 경우의 예시입니다. pom.xml 파일에 다음 의존성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>5.0.0</version>
    </dependency>
</dependencies>

2. Excel 파일 열기

Apache POI를 사용하여 Excel 파일을 열어봅시다. 다음 코드를 사용하여 Workbook 객체를 생성합니다.

String filePath = "path/to/excel/file.xlsx";
Workbook workbook = WorkbookFactory.create(new File(filePath));

3. 유효성 검사 메시지 읽기

이제 유효성 검사 메시지를 읽어봅시다. Excel 파일에는 여러 시트가 있을 수 있으므로, 원하는 시트로 이동한 다음 해당 시트의 유효성 검사 메시지를 읽습니다.

Sheet sheet = workbook.getSheetAt(0); // 첫 번째 시트를 선택합니다.
DataValidationHelper validationHelper = sheet.getDataValidationHelper();

List<? extends DataValidation> validations = sheet.getDataValidations();
for (DataValidation validation : validations) {
    CellRangeAddressList addressList = validation.getRegions().get(0);
    String formula1 = validation.getValidationConstraint().getFormula1();

    DataValidationConstraint constraint = validation.getValidationConstraint();
    if (constraint.getValidationType() == DataValidationConstraint.ValidationType.LIST) {
        DataValidationListConstraint listConstraint = (DataValidationListConstraint) constraint;

        // 유효성 검사에 대한 정보를 사용하여 필요한 작업을 수행합니다.
        // 예: 유효성 검사 범위, 제약 조건, 확인 메시지 등을 확인합니다.
    }
}

위 코드에서는 DataValidationHelper 객체를 사용하여 유효성 검사 메시지를 가져옵니다. getDataValidations() 메서드를 호출하면 시트에 설정된 모든 유효성 검사가 포함된 리스트를 얻을 수 있습니다. 각 유효성 검사에서는 해당하는 범위, 제약 조건, 확인 메시지 등을 확인할 수 있습니다.

4. Excel 파일 닫기

Excel 파일을 다루기 위해 열었던 Workbook 객체는 사용이 끝나면 닫아주어야 합니다.

workbook.close();

위의 코드를 통해 Excel 파일을 읽고 유효성 검사 메시지를 추출하는 작업을 완료할 수 있습니다.

Apache POI를 사용하면 Java에서 Excel 파일을 다루는 것이 훨씬 용이해집니다. 데이터 유효성 검사 메시지와 같은 특정 정보를 읽어와야 하는 경우에도 손쉽게 작업할 수 있습니다.

참고 자료