gpt4 book ai didi

JAVA POI DOCX 替换段落中的文本

转载 作者:行者123 更新时间:2023-12-02 05:08:49 25 4
gpt4 key购买 nike

您好,我正在尝试替换 docx 文件中的某些文本,但我遇到了要替换的文本可能会多次运行的问题。所以我尝试了这个:但它删除了文档中的所有内容:/

private void replaceText(XWPFParagraph p, String target, String replacement) {
if (p.getRuns() != null) {
String paragraph = p.getText();
for (int i = 0; i < p.getRuns().size(); i++) {
p.removeRun(i);
}
paragraph = paragraph.replace(target, replacement);
XWPFRun r = new XWPFRun(CTR.Factory.newInstance(), p);
r.setText(paragraph, 0);

}
}

最佳答案

它肯定会删除所有内容,因为您要删除段落中的所有运行。这里需要理解的是,段落中的文本存储在运行中。 getText() 的作用是返回段落中所有运行中的所有文本。
删除所有运行并仅添加一个新运行肯定会破坏文本的字体和对齐方式

您将删除所有运行,然后使用替换的文本添加一个运行。我相信这不是您希望达到的目标。

Just loop over the runs and replace the text inside them. 

关于JAVA POI DOCX 替换段落中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522466/

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