Замена текста в 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

Ответы на вопрос(5)

Ваш ответ на вопрос