[java] Apache POI를 이용한 Word 문서 동작

Word 문서를 처리하고 조작하기 위해 Apache POI 라이브러리를 사용할 수 있습니다. Apache POI는 Java에서 Microsoft 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>

2. Word 문서 읽기

Apache POI를 사용하여 Word 문서를 읽으려면 다음과 같은 단계를 따라야 합니다.

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

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

public class WordReader {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/word/document.docx");
            XWPFDocument document = new XWPFDocument(file);
            
            // 문단(paragraph) 단위로 데이터 읽기
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                System.out.println(paragraph.getText());
            }
            
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 XWPFDocument 클래스를 사용하여 Word 문서를 열고, XWPFParagraph 객체를 사용하여 문단 단위로 데이터를 읽습니다. 매 문단마다 getText() 메소드를 호출하여 해당 문단의 텍스트를 가져올 수 있습니다.

3. Word 문서 쓰기

Apache POI를 사용하여 Word 문서를 생성하려면 다음과 같은 단계를 따라야 합니다.

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

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

public class WordWriter {
    public static void main(String[] args) {
        try {
            XWPFDocument document = new XWPFDocument();
            
            // 새로운 문단 생성
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            
            // 텍스트 추가
            run.setText("Hello World!");
            
            // 문서 저장
            FileOutputStream out = new FileOutputStream("path/to/save/document.docx");
            document.write(out);
            out.close();
            
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 XWPFDocument 클래스를 사용하여 새로운 Word 문서를 생성하고, createParagraph() 메소드를 호출하여 새로운 문단을 생성합니다. 그리고 createRun() 메소드를 호출하여 문단에 텍스트를 추가할 수 있습니다.

마지막으로, write() 메소드를 사용하여 문서를 저장합니다.

결론

Apache POI를 사용하면 Java에서 Word 문서를 읽고 작성하는 작업을 수행할 수 있습니다. Apache POI의 다른 클래스와 메소드를 사용하여 문서를 더 세부적으로 조작할 수도 있습니다. 자세한 내용은 Apache POI 공식 문서를 참조하세요.