2016-05-02 2 views
0

Я использую POI Apache с Jython для создания таблиц и размещения их в определенных положениях 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); 
    } 

} 
Смежные вопросы