[java] Apache POI를 이용한 Word 문서 검색

Microsoft Word 문서는 일반 텍스트 문서와는 조금 다른 형식을 가지고 있습니다. 따라서 Word 문서에서 원하는 텍스트를 검색하려면 특별한 도구가 필요합니다. 이 때, Apache POI 라이브러리는 매우 유용한 도구로 사용될 수 있습니다.

Apache POI는 Java에서 Microsoft Office 파일을 다루는 데 사용되는 오픈 소스 라이브러리입니다. 이 라이브러리를 사용하면 Java로 Word, Excel, PowerPoint 등의 파일을 읽고 쓸 수 있습니다. 이 문서에서는 Apache POI를 사용하여 Word 문서에서 특정 텍스트를 검색하는 방법을 알아보겠습니다.

Apache POI의 종속성 추가

먼저, 프로젝트에 Apache POI를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 종속성을 추가합니다:

<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>

Gradle을 사용하는 경우 build.gradle 파일에 다음 종속성을 추가합니다:

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

Word 문서에서 특정 텍스트 검색

다음은 Apache POI를 사용하여 Word 문서에서 특정 텍스트를 검색하는 예제 코드입니다.

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

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

public class WordSearchExample {

    public static void main(String[] args) {
        String filePath = "path_to_your_word_document.docx";
        String searchText = "example";

        try (FileInputStream fis = new FileInputStream(new File(filePath));
             XWPFDocument document = new XWPFDocument(fis)) {

            for (XWPFParagraph paragraph : document.getParagraphs()) {
                String text = paragraph.getText();
                if (text.contains(searchText)) {
                    System.out.println("Found at paragraph: " + text);
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

filePath에는 검색하려는 Word 문서의 경로를, searchText에는 원하는 텍스트를 지정합니다. 예제 코드에서는 파일을 열어 모든 단락(paragraph)을 순회하면서 특정 텍스트를 찾습니다.

결론

Apache POI를 사용하면 Java에서 Word 문서를 쉽게 다룰 수 있습니다. 이 문서에서는 Apache POI를 사용하여 Word 문서에서 특정 텍스트를 검색하는 방법을 알아보았습니다. 추가로 Apache POI는 다양한 기능을 제공하므로 문서의 작성, 수정, 저장 등에 유용하게 사용할 수 있습니다.

참고자료