[java] Apache POI를 사용하여 Excel 파일의 자동 조정 읽기

Apache POI는 Java에서 Microsoft Office 파일 (.xls, .xlsx 등)을 조작하는 데 사용되는 라이브러리입니다. 이번에는 Apache POI를 사용하여 Excel 파일의 자동 조정을 읽는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저, Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가해야 합니다:

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

2. Excel 파일 읽기

Apache POI를 사용하여 Excel 파일을 읽기 위해서는 Workbook 객체를 생성해야 합니다. 아래 예제는 .xlsx 파일을 읽는 예제입니다:

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

public class ExcelReader {
    
    public static void main(String[] args) {
        try {
            // Excel 파일 로드
            Workbook workbook = WorkbookFactory.create(new File("파일경로.xlsx"));
            // 첫 번째 시트 가져오기
            Sheet sheet = workbook.getSheetAt(0);
            // 각 행(row) 순회하기
            for (Row row : sheet) {
                // 각 셀(cell) 순회하기
                for (Cell cell : row) {
                    // 셀에 있는 값을 출력
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println();
            }
            // workbook 사용 후에는 반드시 닫아주어야 함
            workbook.close();
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 WorkbookFactory.create 메서드를 사용하여 Excel 파일을 로드합니다. 그 후, Sheet 객체를 통해 첫 번째 시트를 가져옵니다. 각 행(Row)과 셀(Cell)을 순회하면서 셀의 값을 출력하고, 마지막에는 workbook을 닫아주어야 합니다.

3. 자동 조정 읽기

Apache POI는 Excel 파일에서 자동 조정된 셀의 값을 읽는 것을 지원합니다. 자동 조정된 셀은 특정 범위에 대한 계산 결과로 값을 가지는 셀입니다. 다음 예제는 자동 조정된 셀을 읽는 방법을 보여줍니다:

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

public class AutoFitReader {
    
    public static void main(String[] args) {
        try {
            Workbook workbook = WorkbookFactory.create(new File("파일경로.xlsx"));
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    // 셀이 자동 조정된 경우 값을 출력
                    if (cell.getCellType() == CellType.FORMULA) {
                        FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
                        CellValue cellValue = evaluator.evaluate(cell);
                        System.out.print(cellValue.getNumberValue() + "\t");
                    } else {
                        System.out.print(cell.toString() + "\t");
                    }
                }
                System.out.println();
            }
            workbook.close();
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 셀의 타입이 CellType.FORMULA인 경우에는 FormulaEvaluator를 사용하여 자동 조정된 값을 읽습니다. 그 외에는 기존과 동일하게 셀의 값을 출력합니다.

마치며

이번 포스트에서는 Apache POI를 사용하여 Excel 파일의 자동 조정된 값을 읽는 방법에 대해 알아보았습니다. Apache POI는 Excel 파일 조작에 유용한 도구로서 다양한 기능을 제공하므로, 필요에 따라 자세한 문서를 참조하여 활용해보시기 바랍니다.

참고 자료