[java] Apache POI를 이용한 Word 파일 편집

Apache POI는 Java로 Microsoft Office 파일을 생성하고 편집할 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 Word, Excel, PowerPoint 등의 Office 파일을 생성하고 수정할 수 있습니다.

이번 포스트에서는 Apache POI를 사용하여 Word 파일을 편집하는 방법에 대해 알아보겠습니다.

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>

위의 의존성은 Apache POI의 최신 버전인 4.1.2를 사용합니다.

2. Word 파일 열기

먼저, Word 파일을 열어서 수정할 준비를 해야 합니다. 다음 코드를 사용하여 Word 파일을 열 수 있습니다.

import org.apache.poi.xssf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class WordEditor {

    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("sample.docx");
            XSSFWorkbook workbook = new XSSFWorkbook(fis);
            
            // 편집 작업 수행
            
            FileOutputStream fos = new FileOutputStream("edited_sample.docx");
            workbook.write(fos);
            
            workbook.close();
            fis.close();
            fos.close();
            
            System.out.println("Word 파일 편집이 완료되었습니다.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 sample.docx는 편집할 Word 파일의 경로입니다. edited_sample.docx는 편집한 후 저장할 Word 파일의 경로입니다.

3. Word 파일 편집

Word 파일을 열었으면, 이제 편집 작업을 수행할 수 있습니다. Apache POI는 XSSFWorkbook 클래스를 사용하여 Word 파일을 표현합니다.

XSSFWorkbook workbook = new XSSFWorkbook(fis);

편집 작업 예제로는, 특정 셀의 값을 변경하는 작업을 수행해보겠습니다.

XSSFSheet sheet = workbook.getSheetAt(0);
XSSFRow row = sheet.getRow(0);
XSSFCell cell = row.getCell(0);

cell.setCellValue("Hello, Apache POI!");

위 코드는 첫 번째 시트의 첫 번째 행의 첫 번째 셀의 값을 “Hello, Apache POI!”로 변경하는 예제입니다.

4. Word 파일 저장

편집 작업을 완료한 후, 수정된 내용을 Word 파일에 저장해야 합니다. 아래 코드를 사용하여 Word 파일을 저장할 수 있습니다.

FileOutputStream fos = new FileOutputStream("edited_sample.docx");
workbook.write(fos);

위 코드에서 "edited_sample.docx"는 편집한 후 저장할 Word 파일의 경로입니다.

5. 완성된 코드 실행

Apache POI를 사용하여 Word 파일을 편집하는 코드를 완성했습니다. 이제 WordEditor 클래스를 실행하여 Word 파일을 편집해보세요.

public class WordEditor {
    //...
    
    public static void main(String[] args) {
        //...
    }
}

위의 코드에서 WordEditor 클래스의 main 메소드를 실행하면 Word 파일이 편집되고, 저장된 파일이 생성됩니다.

Apache POI를 이용하여 Word 파일을 편집하는 방법에 대해 알아보았습니다. 자세한 내용은 Apache POI 공식 문서를 참조하시기 바랍니다.