[java] Apache POI를 이용한 Word 문서 반영

먼저, Apache POI의 종속성을 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 추가합니다:

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

Apache POI를 사용하여 Word 문서를 반영하는 가장 기본적인 단계는 다음과 같습니다.

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

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

public class WordDocumentExample {
    public static void main(String[] args) {
        // 기존 Word 문서를 열기 위해 FileInputStream 사용
        try (FileInputStream fis = new FileInputStream("existing_document.docx");
             XWPFDocument document = new XWPFDocument(fis)) { // XWPFDocument로 문서를 읽어옴
             
            // 문서 내용 수정
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                for (XWPFRun run : paragraph.getRuns()) {
                    String text = run.getText(0);
                    if (text != null && text.contains("바꿀_텍스트")) {
                        text = text.replace("바꿀_텍스트", "새로운_텍스트");
                        run.setText(text, 0);
                    }
                }
            }
            
            // 수정된 문서를 새로운 파일로 저장하기 위해 FileOutputStream 사용
            try (FileOutputStream fos = new FileOutputStream("updated_document.docx")) {
                document.write(fos);
            }
            
            System.out.println("문서가 성공적으로 반영되었습니다.");
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드는 existing_document.docx 파일을 열어서 해당 문서 내에 있는 “바꿀_텍스트”를 “새로운_텍스트”로 변경한 후 updated_document.docx 파일로 저장하는 예시입니다. XWPFDocument는 Word 문서의 내용을 읽고 쓸 수 있도록 해주는 클래스이며, XWPFParagraphXWPFRun은 문단과 텍스트 런을 나타내는 클래스입니다.

Apache POI를 이용하여 Word 문서를 반영하는 방법에 대해 간단히 알아보았습니다. 더 자세한 내용은 Apache POI 공식 문서에서 확인하실 수 있습니다.