2013-05-29 65 views
2

你知道,如果是有插入一個段落fullfilled文件(XWPFDocument)內的第(XWPFParagraph)的方式?在XWPFDocument的任何位置插入一個XWPFParagraph

有一種方法可以將文檔中已有的段落「改變」爲另一段落(XWPFDocument.setParagraph()),但我不知道如何將新段落插入文檔中的特定位置,而不是最後用XWPFDocument.createParagraph()。

回答

6

我已經找到了解決辦法。 XWPFDocument有一個醜陋的方法insertNewParagraph(org.apache.xmlbeans.XmlCursor cursor)。正如你所看到的,這個方法從xmlbeans庫中傳遞了一個XmlCursor。我們可以這樣做:

XmlCursor cursor = par.getCTP().newCursor(); 
XWPFParagraph new_par = doc.insertNewParagraph(cursor); 
new_par.createRun().setText("Stupid text"); 

Par是XWPFDocument文檔中的XWPFParagraph。插入的新段落(此片段中的new_par)將插入到XmlCursor指向的XmlObject之前。

希望這可以幫助別人。

+4

我試過,但返回的段落'insertNewParagraph'總是空。 –

+0

運行代碼時,Java Runtime Environment檢測到一個致命錯誤。仍在調試,任何想法?沒有其他信息說明爲什麼會出現此錯誤 –

2

我花了一些時間王氏這個問題了。我有與上面評論中提到的相同的問題。什麼工作對我來說是這樣的:

尋找合適的段落做插入document.getParagraphsIterator()後,我不得不使用此代碼

XmlCursor cur = para.getCTP().newCursor(); 
cur.toNextSibling(); 

能夠做到doc.insertNewParagraph(cur)

據我瞭解我的下一個故障是嘗試在光標的位置插入幾個段落。爲了完成這項工作,我必須在插入後添加cursor.toNextToken();

相關問題