2016-05-02 41 views
0

我使用帶有Jython的Apache POI創建表格並將它們放置在具有書籤的docx某些位置。我可以找到他們的名字書籤(CTBookmark對象),在那裏它們被放置在段落的開頭創建一個遊標,然後創建一個新的表那裏:使用Apache POI在書籤內插入表格

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) 

但是爲了插入另一個元素,就像表格一樣,我找不到解決方案。如果桌子放在書籤裏面,但如果它放在它的前面,而不是在該段的開頭,那將會更好。

我欣賞任何幫助或其他想法。謝謝。

回答

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

}