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](images/C-Find-and-Replace-Text.png#center)
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.
- Hitta och ersätt text i Word DOC/DOCX med Java
- Ersätt liknande ord baserat på Regex-mönster i Word DOC/DOCX
- Hitta och ersätt text i sidhuvudet/sidfoten i Word-dokument
- Hitta och ersätt text med meta-tecken i Word DOC/DOCX
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.
- Skapa en instans av klassen Document och skicka Word-dokumentets sökväg till den.
- Hitta och ersätt text med metoden Document.getRange.replace(String, String, FindReplaceOptions).
- Spara dokumentet med metoden Document.save(String).
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](images/Word-Document.png#center)
Följande är resultatet efter att ha hittat och ersatt ordet “ledsen”.
![hitta och ersätta ett ord](images/Find-And-Replace-Text-In-Document.png#center)
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.
- Skapa en instans av klassen Document och skicka Word-dokumentets sökväg till den.
- Definiera ett regexmönster med metoden Pattern.compile() och skicka det till metoden Document.getRange().replace(Pattern pattern, String replacement, FindReplaceOptions options).
- Spara det uppdaterade dokumentet med metoden Document.save(String).
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](images/Find-And-Replace-Multiple-Word-In-Document.png#center)
Ersätt text i sidhuvudet/sidfoten i Word-dokument
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.
- Skapa en instans av klassen Document och skicka Word-dokumentets sökväg till den.
- Hämta HeaderFooterCollection av dokumentet med metoden Document.getFirstSection().getHeadersFooters().
- Hämta den specifika sidhuvudet/sidfoten i objektet HeaderFooter.
- Använd metoden HeaderFooter.getRange().replace() för att hitta och ersätta text.
- Spara det uppdaterade Word-dokumentet.
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](images/Find-And-Replace-Text-In-Footer.png#center)
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](images/Find-And-Replace-Text-with-Paragraph-Break.png#center)
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.