我目前正在尝试处理上一篇名为" 替换Apache POI XWPF中的文本"的文章中提到的代码.
我已经尝试了以下它可以工作,但我不知道我是否遗漏了任何东西.当我运行代码时,文本不会被替换,而是添加到搜索结尾.例如,我创建了一个基本的word文档,并输入了文本"test".在下面的代码中,当我运行它时,我最终得到带有文本"testDOG"的新文档.
我不得不将原始代码从String text = r.getText(0)更改为String text = r.toString(),因为我在运行代码时不断收到NullError.
import java.io.*;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
public class testPOI {
public static void main(String[] args) throws Exception{
String filepath = "F:\\MASTER_DOC.docx";
String outpath = "F:\\Test.docx";
XWPFDocument doc = new XWPFDocument(OPCPackage.open(filepath));
for (XWPFParagraph p : doc.getParagraphs()){
for (XWPFRun r : p.getRuns()){
String text = r.toString();
if(text.contains("test")) {
text = text.replace("test", "DOG");
r.setText(text);
}
}
}
doc.write(new FileOutputStream(outpath));
}
Run Code Online (Sandbox Code Playgroud)
编辑:感谢大家的帮助.我浏览了一下,在Apache POI中找到了 …