apache poi在word文档中添加表

时间:2016-01-27 10:20:16

标签: java swing report apache-poi

我有使用Apache POI创建表和一些文本到word文档的Java代码 但它在上一份文件中添加了表格。我想写一些文字,然后再添加表格并再写一些文字。

目前它添加了表格第一个和最后一个文档添加2个测试(Hi& Bye)

我的代码:

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();
        XWPFParagraph para = document.createParagraph();
        XWPFRun run        = para.createRun();

        run.setText("Hi");
        //create first row
        XWPFTableRow tableRowOne = table.getRow(0);
        tableRowOne.getCell(0).setText("col one, row one");
        tableRowOne.addNewTableCell().setText("col two, row one");
        tableRowOne.addNewTableCell().setText("col three, row one");
        //create second row
        XWPFTableRow tableRowTwo = table.createRow();
        tableRowTwo.getCell(0).setText("col one, row two");
        tableRowTwo.getCell(1).setText("col two, row two");
        tableRowTwo.getCell(2).setText("col three, row two");
        //create third row
        XWPFTableRow tableRowThree = table.createRow();
        tableRowThree.getCell(0).setText("col one, row three");
        tableRowThree.getCell(1).setText("col two, row three");
        tableRowThree.getCell(2).setText("col three, row three");

        run.setText("Bye");

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

如何在页面首页打印Hi并在表格后添加表格并打印Bye

每当我想要添加内容并最终编写并打开文档时,我怎样才能保存文档?

由于

1 个答案:

答案 0 :(得分:4)

您必须保持正确的顺序,更重要的是:您必须创建一个新段落

这是您需要的代码:

public static void main(String[] args) throws IOException {

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

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

    //Write first Text in the beginning
    XWPFParagraph para = document.createParagraph();
    XWPFRun run = para.createRun();
    run.setText("Hi");

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

    //create first row
    XWPFTableRow tableRowOne = table.getRow(0);
    tableRowOne.getCell(0).setText("col one, row one");
    tableRowOne.addNewTableCell().setText("col two, row one");
    tableRowOne.addNewTableCell().setText("col three, row one");
    //create second row
    XWPFTableRow tableRowTwo = table.createRow();
    tableRowTwo.getCell(0).setText("col one, row two");
    tableRowTwo.getCell(1).setText("col two, row two");
    tableRowTwo.getCell(2).setText("col three, row two");
    //create third row
    XWPFTableRow tableRowThree = table.createRow();
    tableRowThree.getCell(0).setText("col one, row three");
    tableRowThree.getCell(1).setText("col two, row three");
    tableRowThree.getCell(2).setText("col three, row three");

    //Write second Text after the table (by creating a new paragraph)
    XWPFParagraph para2 = document.createParagraph();
    XWPFRun run2 = para2.createRun();
    run2.setText("Bye");

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

这是输出,你得到:

Output