【问题标题】:apache poi add table in word documentapache poi在word文档中添加表格
【发布时间】:2020-07-08 06:35:51
【问题描述】:

我有 Java 代码来使用 Apache POI 在 Word 文档中创建表格和一些文本,但它在最后一个文档中添加了表格。我想写一些文字,然后添加表格并再次写一些文字。

目前它添加表格第一个和最后一个文档添加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

每次我想添加内容并最终写入并打开它时,我如何保存文档?

谢谢

【问题讨论】:

    标签: java swing report apache-poi


    【解决方案1】:

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

    这是代码,你需要:

    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");
    }
    

    这是输出,你会得到:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2021-05-18
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 2019-07-03
      相关资源
      最近更新 更多