Java POI로 Word(.docx) 파일 만들기
소개
사전에 다음 라이브러리를 준비합니다.
이번 샘플은 이하의 jar가 있으면 동작합니다.
구현 예
이번 샘플에서는 다음 기능을 확인합니다.
조금 시원하고 있지만 우선은 이것 정도로.
동작 확인하기 쉽도록 main 메소드로 실행할 수 있도록 하고 있습니다.
DOCXWriteTest.java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
/**
*
* @author tool-taro.com
*/
public class DOCXWriteTest {
public static void main(String[] args) throws FileNotFoundException, IOException {
String outputFilePath = "out.docx";
XWPFDocument document = null;
XWPFTable table;
XWPFParagraph paragraph;
XWPFRun run;
FileOutputStream fout = null;
try {
document = new XWPFDocument();
//普通の段落を2つ作る
for (int i = 0; i < 2; i++) {
paragraph = document.createParagraph();
//それぞれの段落の中に色の異なるテキストを2種配置する
//setText内で\nを指定しても改行されないので注意、改行するには必ず段落を作る
run = paragraph.createRun();
run.setFontFamily("MS ゴシック");
run.setText("黒のテキスト");
run = paragraph.createRun();
run.setFontFamily("MS ゴシック");
run.setColor("ff0000");
run.setText("赤のテキスト");
}
//2x2の表を作る
table = document.createTable(2, 2);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
//それぞれのセルの中に段落を2つ作る
for (int k = 0; k < 2; k++) {
//セルには初期状態で1つの段落がある(実装が変わるかもしれないので念のため存在数を確認して適切に処理)
if (table.getRow(i).getCell(j).getParagraphs().size() > k) {
paragraph = table.getRow(i).getCell(j).getParagraphs().get(k);
}
else {
paragraph = table.getRow(i).getCell(j).addParagraph();
}
//それぞれの段落の中に色の異なるテキストを2種配置する
run = paragraph.createRun();
run.setFontFamily("MS ゴシック");
run.setText("黒のテキスト");
run = paragraph.createRun();
run.setFontFamily("MS ゴシック");
run.setColor("ff0000");
run.setText("赤のテキスト");
}
}
}
//ファイル出力
fout = new FileOutputStream(outputFilePath);
document.write(fout);
}
finally {
if (fout != null) {
try {
fout.close();
}
catch (IOException e) {
}
}
if (document != null) {
try {
document.close();
}
catch (IOException e) {
}
}
}
}
}
동작 확인
$ javac DOCXWriteTest.java
$ java DOCXWriteTest
작성된 파일은 이런 느낌이 되었습니다.
환경
개발
동작 검증
위의 구현을 기반으로 웹 도구도 공개하고 있습니다.
Diff (텍스트 차이 확인) | 웹 편리 도구 @ 도구 타로
Reference
이 문제에 관하여(Java POI로 Word(.docx) 파일 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tool-taro/items/6cf2b12c929b7f002f47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)