1

我将 Apache POI 与 Jython 一起使用来创建表并将它们放置在我有书签的 docx 的某些位置。我可以通过它们的名称找到书签(CTBookmark 对象),在放置它们的段落的开头创建一个光标,然后在那里创建一个新表:

cursor = para.getCTP().newCursor() #para is the paragraph where the bookmark is placed
table = document.insertNewTbl(cursor) #cursor is an XMLCursor

如果我只想插入文本,我可以使用:

nextNode = bookmark.getDomNode() #considering it is the node named 'bookmarkEnd'
run = para.createRun()
run.setText('foo')
para.getCTP().getDomNode().insertBefore(run.getCTR().getDomNode(),nextNode)

但是要插入另一个元素,比如表格,我找不到解决方案。如果将表格放在书签内会更好,但如果将它放在它之前,而不是在段落的开头,那也很棒。

我感谢任何帮助或替代想法。谢谢。

4

1 回答 1

0

几乎在那里,您需要创建行和单元格。

一个注册的例子。

我希望有所帮助。

XWPFTable table = doc.insertNewTbl(cursor);
for(int rowIndex=0; rowIndex < 3; rowIndex++){
    String line = "LineContent "+rowIndex;
    XWPFTableRow row = table.getRow(rowIndex);

    if(row==null){
        row = table.createRow();       
    }

    for(int colIndex=0; colIndex < 2; colIndex++){
        XWPFTableCell  cell = row.getCell(colIndex);
        if(cell == null){
          cell = row.createCell();
        }

        cell.setText(line+" Col "+colIndex);
     }

}
于 2017-03-16T18:56:17.320 回答