[java] Java에서 Apache POI 사용하기

Apache POI는 자바 기반에서 Microsoft Office 파일 형식을 다루기 위한 라이브러리입니다. 이 라이브러리를 사용하면 Java 애플리케이션에서 엑셀, 워드, 파워포인트 등의 파일을 생성, 편집 및 읽을 수 있습니다. 이번 포스트에서는 Java에서 Apache POI를 사용하는 방법에 대해 소개하겠습니다.

Apache POI 라이브러리 추가하기

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

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

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

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

엑셀 파일 생성하기

다음은 Apache POI를 사용하여 엑셀 파일을 생성하는 예시입니다:

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

public class ExcelWriter {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
        cell.setCellValue("Hello, world!");

        try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("Excel 파일이 생성되었습니다.");
    }
}

위의 예시에서는 XSSFWorkbook 객체를 사용하여 엑셀 파일을 생성합니다. createSheet 메서드를 사용하여 시트를 생성하고, createRow 메서드를 사용하여 행을 생성한 뒤, createCell 메서드로 셀을 생성하여 값을 입력합니다. 마지막으로 Workbook 객체를 파일로 저장하면 엑셀 파일이 생성됩니다.

엑셀 파일 읽기

Apache POI를 사용하여 엑셀 파일을 읽는 예시는 다음과 같습니다:

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

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

public class ExcelReader {
    public static void main(String[] args) {
        try (FileInputStream fileInputStream = new FileInputStream("input.xlsx");
             Workbook workbook = new XSSFWorkbook(fileInputStream)) {

            Sheet sheet = workbook.getSheet("Sheet1");
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);
            String value = cell.getStringCellValue();

            System.out.println("첫 번째 셀 값: " + value);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예시에서는 FileInputStream 객체를 사용하여 엑셀 파일을 읽어옵니다. XSSFWorkbook 클래스를 사용하여 읽어온 엑셀 파일을 Workbook 객체로 로드한 뒤, getSheet 메서드로 특정 시트를 가져오고, getRow 메서드와 getCell 메서드로 특정 셀의 값을 읽어옵니다.

결론

이번 포스트에서는 Java에서 Apache POI를 사용하여 엑셀 파일을 생성하고 읽는 방법에 대해 알아보았습니다. Apache POI는 Microsoft Office 파일 형식을 다루는 유용한 라이브러리로, 다양한 기능을 제공하며 편리하게 사용할 수 있습니다. 더 많은 기능과 API에 대해 자세히 알아보기 위해서는 Apache POI 공식 문서를 참고하시기 바랍니다.

참고 문서: Apache POI 공식 문서