2010-07-09 230 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