Hi, everybody,
  I need to generate a complex docx file which mainly contains many tables. I 
try to open a template docx file and copy a empty template table in it, then 
fill the new table with texts. But it seems that there isn't a method such as 
"copyTable()" in XWPFDocument, so I have to create a empty table then use 
setTable() to set the new one as the template table. By this way I can get a 
new table same as the template table, but when I try to edit it, I find that 
the result is very strange, because either getTables.get(0) or getTables.get(1) 
will refer to the first table, not the second one. Here are my codes,


        public static void copyTable() throws Exception {
                XWPFDocument doc = new XWPFDocument(new FileInputStream(
                                "styledTable.docx"));
                
                        XWPFTable table = doc.getTables().get(0);
                        doc.createTable();
                        doc.createParagraph();
                        doc.setTable(1, table);
//                      table = doc.getTables().get(0);
                        table = doc.getTables().get(1);
                        table.getRows().get(0).getCell(0).setText("123"); // 
The 1st table always be modified, why ?
                
                FileOutputStream out = new 
FileOutputStream("styledTable2.docx");
                doc.write(out);
                out.close();
        }‍



  The same problem happens when I try to copy and modify a table row by 
addRow(XWPFTableRow row). If anyone get the correct way to copy a table and a 
table row, please write me back here, thanks a lot !

Reply via email to