[java] Apache POI를 이용한 Word 문서 배열

Microsoft Word 문서는 텍스트, 이미지, 표 등 다양한 형식의 콘텐츠를 포함할 수 있는 탁월한 도구입니다. Apache POI는 Java에서 Microsoft Office 파일 형식과 상호 작용하기 위한 라이브러리입니다. 이 라이브러리를 사용하여 Word 문서를 생성, 수정 및 배열하는 방법을 소개하겠습니다.

1. Apache POI 라이브러리 추가

먼저, 프로젝트에 Apache POI 라이브러리를 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.0.0</version>
</dependency>

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가합니다.

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

2. Word 문서 생성하기

다음으로, 새로운 Word 문서를 생성해보겠습니다. 코드에서는 XWPFDocument 클래스를 사용하여 문서 객체를 생성합니다.

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

public class WordDocument {
    public static void main(String[] args) {
        // 새로운 Word 문서 생성
        XWPFDocument document = new XWPFDocument();

        // 문서에 내용 추가
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("Hello, World!");

        // 문서 저장
        try {
            FileOutputStream out = new FileOutputStream("document.docx");
            document.write(out);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서는 XWPFDocument 객체를 생성하여 새롭게 Word 문서를 만들고, XWPFParagraphXWPFRun을 사용하여 문서에 내용을 추가합니다. 마지막으로, document.write()를 호출하여 문서를 파일에 저장합니다.

3. 문서에 표 추가하기

이번에는 Word 문서에 표를 추가하는 방법을 알아보겠습니다. XWPFTable 클래스를 사용하여 표 객체를 생성하고, XWPFTableRowXWPFTableCell을 사용하여 행과 셀을 추가합니다.

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

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

public class WordDocument {
    public static void main(String[] args) {
        // 새로운 Word 문서 생성
        XWPFDocument document = new XWPFDocument();

        // 표 생성
        XWPFTable table = document.createTable(3, 3);

        // 표 내용 입력
        for (int row = 0; row < 3; row++) {
            XWPFTableRow tableRow = table.getRow(row);
            for (int col = 0; col < 3; col++) {
                XWPFTableCell tableCell = tableRow.getCell(col);
                tableCell.setText("Cell " + (row + 1) + "-" + (col + 1));
            }
        }

        // 문서 저장
        try {
            FileOutputStream out = new FileOutputStream("document.docx");
            document.write(out);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서는 createTable() 메서드를 사용하여 표를 생성하고, 중첩된 반복문을 통해 표 내용을 입력합니다. 각 셀에는 setText() 메서드를 사용하여 텍스트를 설정할 수 있습니다.

4. 결론

Apache POI를 사용하면 Java에서 Word 문서를 생성하고 배열하는 것이 매우 간단해집니다. 이번 튜토리얼에서는 Apache POI를 사용하여 Word 문서를 생성하고 표를 추가하는 방법에 대해 알아보았습니다. 추가로 세부 사항을 더 자세히 확인하려면 Apache POI 공식 문서를 참조하시기 바랍니다.