[java] Apache POI를 이용한 Word 문서 승인

많은 조직에서는 문서 작성 및 승인 과정을 관리하기 위해 Microsoft Word를 많이 사용합니다. 이러한 문서 작업을 자동화하고 문서 승인 프로세스를 간소화하기 위해 Apache POI를 사용할 수 있습니다. Apache POI는 Java에서 Microsoft Office 파일을 조작하는 데 사용되는 라이브러리입니다.

이번 블로그 포스트에서는 Apache POI를 사용하여 Word 문서를 생성하고 승인 프로세스를 관리하는 방법에 대해 알아보겠습니다.

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

Maven이 아닌 다른 빌드 도구를 사용하고 있다면 적절한 방법으로 라이브러리를 추가해주시기 바랍니다.

2. Word 문서 생성 및 편집

Apache POI를 사용하면 새로운 Word 문서를 생성하고 편집할 수 있습니다. 아래는 Word 문서를 생성하고 텍스트를 추가하는 예제 코드입니다.

import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class WordDocumentApproval {

    public static void main(String[] args) {
        // 새로운 Word 문서 생성
        XWPFDocument document = new XWPFDocument();
        
        // 문단(Paragraph) 생성
        XWPFParagraph paragraph = document.createParagraph();
        
        // 문단에 텍스트 추가
        XWPFRun run = paragraph.createRun();
        run.setText("이 문서는 승인되어야 합니다.");
        
        try {
            // 문서 저장
            FileOutputStream out = new FileOutputStream("approval.docx");
            document.write(out);
            out.close();
            System.out.println("Word 문서 생성 완료!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드는 “approval.docx”라는 이름으로 Word 문서를 생성하고 “이 문서는 승인되어야 합니다.”라는 텍스트를 추가합니다.

3. 문서 승인 프로세스 관리

Word 문서를 생성한 후에는 승인 프로세스를 관리해야 합니다. 예를 들어, 문서를 승인한 사람의 이름과 승인일자를 추가할 수 있습니다. 아래는 승인 정보를 문서에 추가하는 예제 코드입니다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Date;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class WordDocumentApproval {

    public static void main(String[] args) {
        try {
            // 기존의 Word 문서 열기
            FileInputStream fis = new FileInputStream("approval.docx");
            XWPFDocument document = new XWPFDocument(fis);
            
            // 문단(Paragraph) 생성
            XWPFParagraph paragraph = document.createParagraph();
            
            // 문단에 승인 정보 추가
            XWPFRun run = paragraph.createRun();
            run.setText("승인한 사람: 홍길동");
            
            // 현재 날짜 정보 추가
            run.addCarriageReturn();
            run.setText("승인일자: " + new Date());
            
            // 문서 저장
            FileOutputStream out = new FileOutputStream("approval.docx");
            document.write(out);
            out.close();
            
            System.out.println("승인 정보 추가 완료!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드에서는 기존의 “approval.docx” 문서를 열고 “승인한 사람: 홍길동”과 “승인일자: 현재날짜”를 추가합니다. 추가한 승인 정보는 기존 문서에 덮어씁니다.

Apache POI를 사용하면 Word 문서를 프로그래밍 방식으로 승인 관리할 수 있습니다. 이를 통해 문서 작업을 자동화하고 효율성을 높일 수 있습니다.

참고 자료