2010-07-09 227 views
4

我已經能夠遍歷文檔中的所有段落並獲取文本和所有內容,並且我已閱讀並理解如何從頭開始創建文檔。但是,如何更新和替換段落中的文本?我可以在段落中做createRun,但這隻會在其中創建一段新文本。使用Apache POI更新XWPFParagraph的文本

... 
FileInputStream fis = new FileInputStream("Muu.docx"); 
XWPFDocument myDoc = new XWPFDocument(fis); 
XWPFParagraph[] myParas = myDoc.getParagraphs(); 
... 

我的理論是,我需要在我想改變,或刪除的段落,然後重新添加)段現有的「運行」,但我不能找到方法來做到這一點。

回答

11

您不能直接更改XWPFParagraph上的文本。 XWPFParagraph由一個或多個XWPFRun實例組成。這些提供了設置文本的方式。

要更改文本,你的代碼會想是這樣的:

public void changeText(XWPFParagraph p, String newText) { 
    List<XWPFRun> runs = p.getRuns(); 
    for(int i = runs.size() - 1; i > 0; i--) { 
     p.removeRun(i); 
    } 
    XWPFRun run = runs.get(0); 
    run.setText(newText, 0); 
} 

這將確保你只有一個文本串(第一個),並且將取代所有文字是你提供。

+0

謝謝!將嘗試並報告。 – 2011-04-08 13:49:53