gpt4 book ai didi

java - 使用 `Replace()` 方法不会替换 Apache POI 中的文本

转载 作者:行者123 更新时间:2023-11-30 11:14:13 29 4
gpt4 key购买 nike

这是我的代码:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;


public class POI {

public POI() throws IOException, InvalidFormatException
{

XWPFDocument doc = new XWPFDocument(OPCPackage.open("input.docx"));
for (XWPFParagraph p : doc.getParagraphs()) {
for (XWPFRun r : p.getRuns()) {
String text = r.getText(0);

System.out.println(text);
if (text.contains("needle"))
{
text = text.replace("needle", "haystack");

r.setText(text);
System.out.println(text);
}
}
}
doc.write(new FileOutputStream("output.docx"));


}


}

此代码旨在替换 .docx 中的文本文档。我对程序的输入是 input.docx它包含以下数据

needle
game
system

我的输出是 output.docx它包含以下数据

needlehaystack
game
system

你可以看出区别。而不是“替换”这个词 needlehaystack它只是添加了 haystack就在 needle 旁边.

我不知道我在这里做错了什么。如何正确替换 .docx 中的文本文件?

最佳答案

绝对没有经验,但对称地说,应该是:

r.setText(text, 0);

关于java - 使用 `Replace()` 方法不会替换 Apache POI 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26023804/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com