Substituindo um texto no Apache POI XWPF não está funcionando
Atualmente, estou tentando trabalhar no código mencionado em uma postagem anterior chamadaSubstituindo um texto no Apache POI XWPF.
Eu tentei o abaixo e funciona, mas não sei se estou faltando alguma coisa. Quando executo o código, o texto não é substituído, mas adicionado ao final do que foi pesquisado. Por exemplo, eu criei um documento básico do word e digitei o texto "test". No código abaixo, quando o executo, recebo o novo documento com o texto "testDOG".
Eu tive que alterar o código original de String text = r.getText (0) para String text = r.toString () porque eu recebia um NullError enquanto executava o código.
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));
}
EDIT: Obrigado por sua ajuda a todos. Eu procurei e encontrei uma solução emSubstituir valor da coluna da tabela no Apache POI