我使用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);
}
}