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

Apache POI는 Java에서 Microsoft Office 파일 형식을 조작하기 위한 라이브러리입니다. 이 라이브러리를 사용하면 Java 애플리케이션에서 Excel 파일을 쉽게 다룰 수 있습니다. 이번 포스트에서는 Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 오류를 무시하고 데이터를 읽는 방법을 알아보겠습니다.

1. Apache POI와 의존성 추가

먼저, Apache POI를 사용하기 위해 Maven 또는 Gradle에 다음 의존성을 추가해야 합니다.

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

2. Excel 파일 읽기

다음은 Apache POI를 사용하여 Excel 파일을 읽는 예제 코드입니다.

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

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

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

        try (FileInputStream fis = new FileInputStream(new File(filePath));
             Workbook workbook = new XSSFWorkbook(fis)) {

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

            // 각 행을 순회하며 데이터 읽기
            for (Row row : sheet) {
                // 각 셀을 순회하며 데이터 읽기
                for (Cell cell : row) {
                    // 셀 유형에 따라 데이터 읽기
                    switch (cell.getCellType()) {
                        case STRING:
                            System.out.print(cell.getStringCellValue() + "\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "\t");
                            break;
                        case BOOLEAN:
                            System.out.print(cell.getBooleanCellValue() + "\t");
                            break;
                        default:
                            System.out.print("\t");
                            break;
                    }
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 데이터 유효성 검사 오류 무시

일반적으로 Excel 파일에는 데이터 유효성 검사 규칙이 설정되어 있습니다. 이 규칙에 어긋나는 데이터가 있는 경우, Apache POI는 유효성 검사 오류를 발생시킵니다. 하지만, 때로는 이 유효성 검사 오류를 무시하고 데이터를 읽어야 하는 경우가 있습니다.

Apache POI를 사용하여 데이터 유효성 검사 오류를 무시하려면 다음과 같이 Sheet 객체의 getWorkbook 메서드를 사용하면 됩니다.

Sheet sheet = workbook.getSheetAt(0);
sheet.setForceFormulaRecalculation(true);

위 코드를 추가하면 데이터 유효성 검사 오류가 있는 경우에도 Apache POI가 데이터를 읽을 수 있습니다.

마무리

이번에는 Apache POI를 사용하여 Excel 파일의 데이터 유효성 검사 오류를 무시하고 데이터를 읽는 방법에 대해 알아보았습니다. Apache POI는 Excel 파일을 다루는 다양한 기능을 제공하므로, 다른 작업을 수행하고자 할 때도 유용하게 사용할 수 있습니다.

참고 자료: