使用Apache POI在书签中插入表格



我使用ApachePOI和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)

但是要插入另一个元素,比如表,我找不到解决方案。如果把桌子放在书签里会更好,但如果它放在书签前面,而不是放在段落的开头,那也太好了。

我感谢任何帮助或其他想法。谢谢

几乎到了,您需要创建行和单元格。

要注册的示例。

我希望能帮上忙。

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

相关内容

  • 没有找到相关文章

最新更新