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

Apache POI는 Java에서 Microsoft Office 파일을 다루는 라이브러리입니다. 이 라이브러리를 사용하여 Excel 파일의 데이터 유효성 검사 오류를 읽어오는 방법을 알아보겠습니다.

1. Apache POI 라이브러리 추가

먼저 Maven 또는 Gradle을 사용하여 프로젝트에 Apache POI 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

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

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

implementation 'org.apache.poi:poi:4.1.2'

의존성을 추가한 후, 프로젝트를 빌드하고 Apache POI 라이브러리를 사용할 준비가 완료됩니다.

2. Excel 파일에서 데이터 유효성 검사 오류 읽기

다음 코드는 Apache POI를 사용하여 Excel 파일에서 데이터 유효성 검사 오류를 읽어오는 예제입니다:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

public class ValidationsReader {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/excel/file.xlsx");
            FileInputStream fis = new FileInputStream(file);
            
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0);
            
            DataValidationHelper dvHelper = sheet.getDataValidationHelper();
            
            for (Row row : sheet) {
                for (Cell cell : row) {
                    DataValidationConstraint dvConstraint = cell.getDataValidationConstraint();
                    
                    if (dvConstraint != null && dvConstraint.getValidationType() == ValidationType.LIST) {
                        DataValidation dv = dvHelper.createValidation(dvConstraint, new CellRangeAddressList(cell.getRowIndex(), cell.getRowIndex(), cell.getColumnIndex(), cell.getColumnIndex()));
                        dv.setErrorStyle(DataValidation.ErrorStyle.STOP);
                        dv.showPromptBox("Data Validation Error", "Invalid value entered");
                        
                        DataValidation.ErrorTitle errorTitle = dv.getErrorTitle();
                        DataValidation.ErrorMessage errorMessage = dv.getErrorMessage();
                        
                        System.out.println("Cell [" + cell.getRowIndex() + ", " + cell.getColumnIndex() + "]: " + errorTitle + " - " + errorMessage);
                    }
                }
            }
            
            workbook.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 “path/to/excel/file.xlsx” 부분을 읽어올 Excel 파일의 경로로 대체해야 합니다. 코드는 주어진 Excel 파일의 첫 번째 시트에서 모든 셀을 순회하면서 데이터 유효성 검사 오류를 찾습니다. 오류가 있을 경우, 오류 메시지와 해당 셀의 위치를 출력합니다.

결론

Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 오류를 읽어오는 방법을 알아보았습니다. 이를 활용하여 Excel 파일에서 오류를 식별하고, 데이터 입력의 정확성을 향상시킬 수 있습니다.

참고 자료