Java如何向Word文件中新增表格?

2019-10-16 22:27:12

在Java程式設計中,如何向Word文件中新增表格?

注意:需要存取網址:http://poi.apache.org/download.html , 下載一個Apache POI軟體包。這裡下載最新版本:poi-bin-3.17-20170915.tar.gz解壓並將全部.jar檔案匯入。

需要匯入全部包,如下圖所示 -

以下是向Word文件中新增表格的程式。

package com.yiibai;

import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

public class TablesToWord {
    public static void main(String[] args) throws Exception {

        // Blank Document
        XWPFDocument document = new XWPFDocument();

        // Write the Document in file system
        FileOutputStream out = new FileOutputStream(new File("create_table.docx"));

        // create table
        XWPFTable table = document.createTable();

        table.setWidth(1000);

        // create first row
        XWPFTableRow tableRowOne = table.getRow(0);

        tableRowOne.getCell(0).setText("1 x 1");
        tableRowOne.addNewTableCell().setText("2 x 1");
        tableRowOne.addNewTableCell().setText("3 x 1");

        // create second row
        XWPFTableRow tableRowTwo = table.createRow();

        tableRowTwo.getCell(0).setText("1 x 2");
        tableRowTwo.getCell(1).setText("2 x 2");
        tableRowTwo.getCell(2).setText("3 x 2");

        // create third row
        XWPFTableRow tableRowThree = table.createRow();

        tableRowThree.getCell(0).setText("1 x 3");
        tableRowThree.getCell(1).setText("2 x 3");
        tableRowThree.getCell(2).setText("3 x 3");

        document.write(out);
        out.close();

        System.out.println("create_table.docx written successully");
    }
}

執行上面範例程式碼,得到以下結果 -

create_table.docx written successully

生成的World文件,得到以下結果 -