I den här artikeln kommer jag att visa hur man hittar och ersätter text i Word-dokument (DOC/DOCX) programmatiskt med Java. Steg-för-steg-guiden och kodexemplen kommer att täcka olika scenarier för att hitta och ersätta text i Word-dokument.

Hitta och ersätt text i Word-dokument

MS Word ger ett enkelt sätt att hitta och ersätta text i dokumenten. Ett av de populäraste användningsfallen för att hitta och ersätta text kan vara att ta bort eller ersätta känslig information i dokumenten innan de delas mellan olika enheter. Den manuella processen kan dock kräva att du installerar MS Word och uppdaterar varje dokument separat. I sådana situationer skulle det vara praktiskt och tidsbesparande, särskilt när du har integrerat sök- och ersätt-funktioner i ditt skrivbord eller webbapplikation. Så låt oss börja och se hur man hittar och ersätter text i Word-dokument med hjälp av Java i olika scenarier.

Java API för att hitta och ersätta text i Word-dokument

För att implementera sök- och ersätt-funktionen kommer vi att använda Aspose.Words for Java som är ett kraftfullt, funktionsrikt och lättanvänt ordbehandlings-API för Java-plattformen. Du kan antingen ladda ner dess JAR eller installera den i din Maven-baserade applikation med följande konfigurationer.

Förvar:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Beroende:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.5</version>
    <classifier>jdk17</classifier>
</dependency>

Hitta och ersätt text i Word-dokument (DOC/DOCX) med Java

Låt oss börja med att ta itu med ett enkelt sök- och ersättscenario där vi hittar ordet “Sad” i Word-dokumentet. Följande är stegen för att utföra denna operation.

Följande kodexempel visar hur du hittar och ersätter text i Word DOCX-dokument med Java.

// Ladda ett Word DOCX-dokument
Document doc = new Document("document.docx");
// Hitta och ersätt text i dokumentet
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Spara Word-dokumentet
doc.save("Find-And-Replace-Text.docx");

Nedan är indata Word-dokument som vi har använt i den här artikeln.

hitta och ersätta text i DOCX med Java

Följande är resultatet efter att ha hittat och ersatt ordet “ledsen”.

hitta och ersätta ett ord

Hitta och ersätt liknande ord i Word DOC/DOCX med Java

Du kan också anpassa API:et för att hitta och ersätta text baserat på likheten. Till exempel följer orden “ledsen”, “galen” och “dålig” ett liknande mönster som slutar på “annons”. E-post-ID är ett annat exempel på en sådan text. I sådana fall kan du definiera ett regexmönster för att hitta och ersätta alla textförekomster som har ett visst mönster. Följande är stegen för att uppnå detta.

Följande kodexempel visar hur du hittar och ersätter liknande ord baserat på ett visst mönster med hjälp av Java.

// Ladda ett Word DOCX-dokument
Document doc = new Document("document.docx");
// Hitta och ersätt liknande ord i dokumentet
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Spara Word-dokumentet
doc.save("Find-And-Replace-Text.docx");

Följande är skärmdumpen av Word-dokumentet efter uppdatering av liknande ord.

hitta och ersätta liknande ord med Java

Aspose.Words låter dig också hitta och ersätta text endast i sidhuvudet/sidfoten i Word-dokumentet. Följande är stegen för att utföra denna operation.

Följande kodexempel visar hur du hittar och ersätter text i sidhuvudet/sidfoten i Word-dokument med Java.

// Ladda ett Word DOCX-dokument
Document doc = new Document("document.docx");
// Få tillgång till sidfotssamling
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Ställ in alternativ för sök och ersätt
FindReplaceOptions options = new FindReplaceOptions();
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
footer.getRange().replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Spara Word-dokumentet
doc.save("Find-And-Replace-Text.docx");

Följande skärmdump visar den uppdaterade texten i sidfoten i Word-dokumentet.

hitta och ersätta text i sidfoten

Hitta och ersätt text med meta-tecken i Word DOCX med Java

Det kan vara fallet när du behöver hitta och ersätta en fras som är uppdelad i flera rader eller stycken. I sådana fall måste du ta hand om stycket, avsnittet eller radbrytningarna. Aspose.Words för Java gör det enkelt för dig att hantera sådana fall ganska enkelt. Följande är meta-tecken som du kan använda för olika pauser:

  • &p: styckebrytning
  • &b: avsnittsbrytning
  • &m: sidbrytning
  • &l: radbrytning

Följande kodexempel visar hur du hittar och ersätter texten med en styckebrytning i ett Word-dokument.

// Ladda ett Word DOCX-dokument
Document doc = new Document("document.docx");
// Ställ in alternativ
FindReplaceOptions options = new FindReplaceOptions();
// Inaktivera matchande skiftläge och bara hitta hela ord
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Ersätt text med styckebrytning
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Spara Word-dokumentet
doc.save("Find-And-Replace-Text.docx");

Följande är skärmdumpen av Word-dokumentet.

hitta och ersätta text med meta-tecken

Slutsats

I den här artikeln har du sett hur du hittar och ersätter text i Word DOC/DOCX-dokument programmatiskt med Java. Olika scenarier för att hitta och ersätta text i MS Word DOCX-filer har behandlats med hjälp av kodexempel. Du kan lära dig mer om Aspose.Words för Java från dokumentationen.

Se även