[java] Apache POI를 사용하여 Excel 파일의 데이터 변경하기

Apache POI는 자바에서 Microsoft Office 파일 (예: Excel, Word, PowerPoint)을 조작하기위한 오픈 소스 라이브러리입니다. 이 라이브러리를 사용하면 자바 프로그램으로 Excel 파일을 만들고 수정할 수 있습니다. 이번 블로그 게시물에서는 Apache POI를 사용하여 Excel 파일의 데이터를 어떻게 변경할 수 있는지 알아보겠습니다.

1. Apache POI를 프로젝트에 추가하기

먼저, 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를 프로젝트에 추가합니다.

2. Excel 파일 열기

Apache POI를 사용하여 Excel 파일의 데이터를 변경하려면 먼저 해당 파일을 열어야 합니다. 아래 코드 예제에서는 FileInputStream을 사용하여 Excel 파일을 엽니다:

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

public class ExcelUpdater {

    public static void main(String[] args) throws Exception {
        // Excel 파일 경로
        String filePath = "path/to/myExcelFile.xlsx";

        // FileInputStream을 사용하여 Excel 파일 열기
        Workbook workbook = new XSSFWorkbook(new FileInputStream(filePath));

        // Excel 파일 조작 코드 추가...

        // 변경 내용을 저장한 후 파일 닫기
        FileOutputStream fileOutputStream = new FileOutputStream(filePath);
        workbook.write(fileOutputStream);
        workbook.close();
        fileOutputStream.close();
    }
}

이 코드 예제에서는 XSSFWorkbookFileInputStream을 사용하여 Excel 파일을 엽니다. 파일 경로를 path/to/myExcelFile.xlsx로 변경해야 합니다.

3. 데이터 변경하기

Excel 파일을 열었으므로 이제 데이터를 변경할 수 있습니다. Apache POI는 셀 단위로 데이터를 조작할 수 있는 다양한 기능을 제공합니다. 아래는 데이터를 변경하는 간단한 예제입니다:

// 첫 번째 시트 가져오기
Sheet sheet = workbook.getSheetAt(0);

// 첫 번째 행 가져오기
Row row = sheet.getRow(0);

// 첫 번째 셀 가져오기
Cell cell = row.getCell(0);

// 셀의 값을 변경
cell.setCellValue("새로운 데이터");

// 데이터 변경 후 변경 내용을 저장한 후 파일 닫기 코드...

위의 코드 예제에서는 첫 번째 시트, 첫 번째 행, 첫 번째 셀을 가져와 setCellValue 메소드를 사용하여 값을 변경합니다. 이것은 간단한 예제이며, 실제로는 다양한 데이터 변경 작업을 수행할 수 있습니다. 필요에 따라 Apache POI의 다른 기능을 사용하여 원하는 데이터 변경 작업을 수행할 수 있습니다.

4. 변경 내용 저장 및 파일 닫기

데이터를 변경한 후에는 변경 내용을 저장한 다음 파일을 닫아야 합니다. 아래 코드 예제에서는 FileOutputStream을 사용하여 변경 내용을 저장하고, close 메소드를 사용하여 파일을 닫습니다:

// 변경 내용을 저장한 후 파일 닫기
FileOutputStream fileOutputStream = new FileOutputStream(filePath);
workbook.write(fileOutputStream);
workbook.close();
fileOutputStream.close();

위의 코드 예제에서는 FileOutputStream을 사용하여 변경 내용을 저장한 후, WorkbookFileOutputStream 모두를 close 메소드를 사용하여 닫습니다.

결론

이번 블로그 게시물에서는 Apache POI를 사용하여 Excel 파일의 데이터를 변경하는 방법을 알아보았습니다. Apache POI를 사용하면 자바로 Excel 파일을 조작할 수 있으며, 다양한 기능을 사용하여 원하는 대로 파일을 수정할 수 있습니다. 자세한 내용은 Apache POI의 공식 문서를 참조하시기 바랍니다.