Замена текста в Apache POI XWPF не работает
В настоящее время я пытаюсь работать над кодом, упомянутым в предыдущем посте под названиемЗамена текста в Apache POI XWPF.
Я пробовал ниже, и это работает, но я не знаю, если я что-то упустил. Когда я запускаю код, текст не заменяется, а добавляется в конец того, что искали. Например, я создал базовое слово документа и ввел текст «тест». В приведенном ниже коде, когда я запускаю его, я в итоге получаю новый документ с текстом «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));
}
РЕДАКТИРОВАТЬ: Спасибо за вашу помощь всем. Я просмотрел и нашел решение наЗаменить значение столбца таблицы в Apache POI