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

Apache POI는 자바를 사용하여 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>

Maven을 사용하지 않는다면, Apache POI 다운로드 페이지에서 라이브러리 파일을 다운로드하여 프로젝트에 추가합니다.

2. Word 문서에서 텍스트 검색하기

다음은 Word 문서에서 특정 텍스트를 검색하는 예제 코드입니다:

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.IOException;

public class WordDocumentSearch {
    public static void main(String[] args) throws IOException {
        // Word 문서 파일 경로
        String filePath = "path/to/your/document.docx";

        // 검색할 텍스트
        String searchText = "example";

        // Word 문서 열기
        FileInputStream fis = new FileInputStream(filePath);
        XWPFDocument document = new XWPFDocument(fis);

        // 문서 내 모든 텍스트 체크
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            String paraText = paragraph.getText();

            // 텍스트가 검색어와 일치하는지 확인
            if(paraText.contains(searchText)){
                System.out.println("검색어가 다음 위치에서 발견되었습니다: " + paraText);
            }
        }

        // 문서 닫기
        document.close();
        fis.close();
    }
}

filePath 변수에는 검색할 Word 문서의 파일 경로를 입력합니다. searchText 변수에는 검색할 텍스트를 입력합니다. 코드는 주어진 텍스트를 포함하는 모든 단락을 찾아 출력합니다.

3. 실행 결과 확인하기

위 예제 코드를 실행하면 Word 문서에서 검색어가 발견된 위치를 출력합니다.

검색어가 다음 위치에서 발견되었습니다: This is an example sentence.
검색어가 다음 위치에서 발견되었습니다: Another example sentence here.

결론

이번 포스트에서는 Apache POI 라이브러리를 사용하여 Java에서 Word 문서에서 특정 텍스트를 검색하는 방법을 살펴보았습니다. Apache POI는 다양한 기능을 제공하므로, 문서 생성, 편집 등 다른 작업에도 유용하게 사용할 수 있습니다.

참고자료:
Apache POI 공식 홈페이지
Apache POI 다운로드 페이지