V tomto článku předvedu, jak najít a nahradit text v dokumentech Wordu (DOC/DOCX) programově pomocí Java. Průvodce krok za krokem a ukázky kódu pokrývají různé scénáře hledání a nahrazování textu v dokumentech aplikace Word.
MS Word poskytuje snadný způsob, jak najít a nahradit text v dokumentech. Jedním z oblíbených případů použití při hledání a nahrazování textu může být odstranění nebo nahrazení citlivých informací v dokumentech před jejich sdílením mezi různými subjekty. Manuální proces však může vyžadovat instalaci MS Word a aktualizaci každého dokumentu zvlášť. V takových situacích by to bylo praktické a časově nenáročné, zejména pokud máte integrované funkce hledání a nahrazování do vaší desktopové nebo webové aplikace. Začněme tedy a podívejme se, jak najít a nahradit text v dokumentech aplikace Word pomocí Java v různých scénářích.
- Najít a nahradit text ve Wordu DOC/DOCX pomocí Java
- Nahraďte podobná slova na základě vzoru regulárních výrazů ve Wordu DOC/DOCX
- Najít a nahradit text v záhlaví/zápatí dokumentu aplikace Word
- Najděte a nahraďte text metaznaky ve Wordu DOC/DOCX
Java API pro vyhledání a nahrazení textu v dokumentech aplikace Word
Abychom mohli implementovat funkci najít a nahradit, použijeme Aspose.Words for Java, což je výkonné, na funkce bohaté a snadno použitelné rozhraní API pro zpracování textu pro platformu Java. Můžete si stáhnout jeho JAR nebo jej nainstalovat do své aplikace založené na Maven pomocí následujících konfigurací.
úložiště:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Závislost:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
Najít a nahradit text v dokumentech Word (DOC/DOCX) pomocí Java
Začněme tím, že se zaměříme na jednoduchý scénář hledání a nahrazení, kde ve vstupním dokumentu aplikace Word najdeme slovo „Smutný“. Následují kroky k provedení této operace.
- Vytvořte instanci třídy Document a předejte jí cestu k dokumentu aplikace Word.
- Najděte a nahraďte text pomocí metody Document.getRange.replace(String, String, FindReplaceOptions).
- Uložte dokument pomocí metody Document.save(String).
Následující ukázka kódu ukazuje, jak najít a nahradit text v dokumentech Word DOCX pomocí Java.
// Načtěte dokument Word DOCX
Document doc = new Document("document.docx");
// Najít a nahradit text v dokumentu
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Uložte dokument aplikace Word
doc.save("Find-And-Replace-Text.docx");
Níže je vstupní dokument aplikace Word, který jsme použili v tomto článku.
Následuje výstup po nalezení a nahrazení slova „smutný“.
Najít a nahradit podobná slova ve Wordu DOC/DOCX pomocí Java
Rozhraní API můžete také přizpůsobit tak, aby našlo a nahradilo text na základě podobnosti. Například slova „smutný“, „šílený“ a „špatný“ mají podobný vzorec, který končí na „reklama“. E-mailová ID jsou dalším příkladem takového textu. V takových případech můžete definovat vzor regulárních výrazů, abyste našli a nahradili všechny výskyty textu s určitým vzorem. Níže jsou uvedeny kroky, jak toho dosáhnout.
- Vytvořte instanci třídy Document a předejte jí cestu k dokumentu aplikace Word.
- Definujte vzor regulárního výrazu pomocí metody Pattern.compile() a předejte jej metodě Document.getRange().replace(vzor vzor, nahrazení řetězce, možnosti FindReplaceOptions).
- Uložte aktualizovaný dokument pomocí metody Document.save(String).
Následující ukázka kódu ukazuje, jak najít a nahradit podobná slova na základě určitého vzoru pomocí Java.
// Načtěte dokument Word DOCX
Document doc = new Document("document.docx");
// Najděte a nahraďte podobná slova v dokumentu
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Uložte dokument aplikace Word
doc.save("Find-And-Replace-Text.docx");
Následuje snímek obrazovky dokumentu Word po aktualizaci podobných slov.
Nahradit text v záhlaví/zápatí dokumentu aplikace Word
Aspose.Words také umožňuje najít a nahradit text pouze v záhlaví/zápatí dokumentu aplikace Word. Následují kroky k provedení této operace.
- Vytvořte instanci třídy Document a předejte jí cestu k dokumentu aplikace Word.
- Získejte HeaderFooterCollection dokumentu pomocí metody Document.getFirstSection().getHeadersFooters().
- Načtěte konkrétní záhlaví/zápatí v objektu HeaderFooter.
- K vyhledání a nahrazení textu použijte metodu HeaderFooter.getRange().replace().
- Uložte aktualizovaný dokument aplikace Word.
Následující ukázka kódu ukazuje, jak najít a nahradit text v záhlaví/zápatí dokumentu Word pomocí Java.
// Načtěte dokument Word DOCX
Document doc = new Document("document.docx");
// Přístup ke kolekci zápatí záhlaví
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Nastavte možnosti hledání a nahrazení
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);
// Uložte dokument aplikace Word
doc.save("Find-And-Replace-Text.docx");
Následující snímek obrazovky ukazuje aktualizovaný text v zápatí dokumentu aplikace Word.
Najděte a nahraďte text metaznaky ve Wordu DOCX pomocí Java
Může nastat případ, kdy potřebujete najít a nahradit frázi, která je rozdělena do více řádků nebo odstavců. V takových případech se budete muset postarat o zalomení odstavců, oddílů nebo řádků. Aspose.Words for Java vám zjednodušuje zvládnutí takových případů. Níže jsou uvedeny metaznaky, které můžete použít pro různé přestávky:
- &p: konec odstavce
- &b: konec sekce
- &m: konec stránky
- &l: zalomení řádku
Následující ukázka kódu ukazuje, jak najít a nahradit text zalomením odstavce v dokumentu aplikace Word.
// Načtěte dokument Word DOCX
Document doc = new Document("document.docx");
// Nastavit možnosti
FindReplaceOptions options = new FindReplaceOptions();
// Zakázat shodování velkých a malých písmen a hledání pouze celých slov
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Nahraďte text zalomením odstavce
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Uložte dokument aplikace Word
doc.save("Find-And-Replace-Text.docx");
Následuje snímek obrazovky výstupního dokumentu aplikace Word.
Závěr
V tomto článku jste viděli, jak najít a nahradit text v dokumentech Word DOC/DOCX programově pomocí Java. Různé scénáře hledání a nahrazování textu v souborech MS Word DOCX byly řešeny pomocí ukázek kódu. Více o Aspose.Words for Java se můžete dozvědět v dokumentaci.