[java] Java Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 설정하기

Excel 파일은 많은 데이터를 저장하고 관리하는 데 유용한 도구입니다. Java에서 Apache POI 라이브러리를 사용하면 Excel 파일을 생성하고 편집할 수 있습니다. 이러한 기능 중 하나는 데이터 유효성 검사 설정입니다. 데이터 유효성 검사는 사용자가 입력하는 데이터를 제한하거나 특정 조건에 부합해야 한다는 규칙을 설정할 수 있는 기능입니다. 이 기능을 사용하면 올바른 데이터가 입력되도록 보장할 수 있습니다.

Apache POI 라이브러리 추가하기

Java 프로젝트에 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>

Maven을 사용하지 않는 경우 Apache POI 다운로드 페이지에서 라이브러리를 다운로드하여 프로젝트에 추가합니다.

데이터 유효성 검사 설정하기

먼저 Excel 파일을 생성하거나 기존 파일을 열어야 합니다. 다음 코드는 새로운 Excel 파일을 생성하는 예제입니다:

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

public class ExcelValidationExample {

    public static void main(String[] args) {
        // 새로운 Excel 파일 생성
        Workbook workbook = new XSSFWorkbook();

        // 시트 생성
        Sheet sheet = workbook.createSheet("DataSheet");

        // 셀에 유효성 규칙 생성
        DataValidationHelper validationHelper = sheet.getDataValidationHelper();
        CellRangeAddressList addressList = new CellRangeAddressList(1, 10, 0, 0);
        DataValidationConstraint validationConstraint = validationHelper.createFormulaListConstraint("List1");
        DataValidation validation = validationHelper.createValidation(validationConstraint, addressList);
        validation.setShowErrorBox(true);
        validation.setErrorTitle("Invalid Data");
        validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
        sheet.addValidationData(validation);

        // Excel 파일 저장
        try (FileOutputStream fileOut = new FileOutputStream("data.xlsx")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            workbook.close();
        }
    }
}

위의 코드에서 CellRangeAddressList를 사용하여 유효성 검사를 적용할 셀의 범위를 지정합니다. DataValidationConstraint은 유효성 검사 규칙을 설정하는 데 사용되며, DataValidation은 실제 유효성 검사를 생성합니다.

위의 예제에서는 첫 번째 열의 셀 (0인덱스)에 List1이라는 유효성 검사 규칙을 설정한 것입니다. 이 규칙은 직접 값 입력 대신 미리 정의된 리스트에서 선택할 수 있는 값을 제한하는 역할을 합니다.

실행 결과

위의 코드를 실행하면 data.xlsx라는 이름의 Excel 파일이 생성됩니다. 파일을 열어 첫 번째 열의 셀을 클릭하면 유효성 검사 규칙에 따라 리스트가 표시됩니다. 사용자는 이 리스트에서 값을 선택하여 입력해야 합니다. 그렇지 않은 경우 해당 셀은 오류로 표시됩니다.

결론

Java Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사를 설정하는 방법에 대해 알아보았습니다. 데이터 유효성 검사는 올바른 데이터 입력을 보장하기 위해 매우 유용한 도구입니다. Apache POI는 다양한 기능과 유용한 메서드를 제공하여 Excel 파일 작업을 쉽게 할 수 있습니다.