Dans cet article, je vais montrer comment rechercher et remplacer du texte dans des documents Word (DOC/DOCX) par programmation à l’aide de Java. Le guide étape par étape et les exemples de code couvriront divers scénarios de recherche et de remplacement de texte dans des documents Word.
MS Word offre un moyen simple de rechercher et de remplacer du texte dans les documents. L’un des cas d’utilisation les plus courants de la recherche et du remplacement de texte pourrait être la suppression ou le remplacement d’informations sensibles dans les documents avant qu’ils ne soient partagés entre diverses entités. Cependant, le processus manuel peut vous obliger à installer MS Word et à mettre à jour chaque document séparément. Dans de telles situations, cela serait pratique et rapide, en particulier lorsque vous avez intégré des fonctionnalités de recherche et de remplacement dans votre application de bureau ou Web. Commençons donc et voyons comment rechercher et remplacer du texte dans des documents Word à l’aide de Java dans divers scénarios.
- Rechercher et remplacer du texte dans Word DOC/DOCX à l’aide de Java
- Remplacer les mots similaires basés sur le modèle Regex dans Word DOC/DOCX
- Rechercher et remplacer du texte dans l’en-tête/le pied de page d’un document Word
- Rechercher et remplacer du texte par des méta-caractères dans Word DOC/DOCX
API Java pour rechercher et remplacer du texte dans des documents Word
Afin d’implémenter la fonctionnalité de recherche et de remplacement, nous utiliserons Aspose.Words for Java qui est une API de traitement de texte puissante, riche en fonctionnalités et facile à utiliser pour la plate-forme Java. Vous pouvez soit télécharger son JAR ou l’installer dans votre application basée sur Maven en utilisant les configurations suivantes.
Repository:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependency:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.5</version>
<classifier>jdk17</classifier>
</dependency>
Rechercher et remplacer du texte dans des documents Word (DOC/DOCX) à l’aide de Java
Commençons par aborder un simple scénario de recherche et de remplacement dans lequel nous trouverons le mot “Sad” dans le document Word d’entrée. Voici les étapes pour effectuer cette opération.
- Créez une instance de la classe Document et transmettez-lui le chemin du document Word.
- Recherchez et remplacez du texte à l’aide de la méthode Document.getRange.replace(String, String, FindReplaceOptions).
- Enregistrez le document à l’aide de la méthode Document.save(String).
L’exemple de code suivant montre comment rechercher et remplacer du texte dans des documents Word DOCX à l’aide de Java.
// Charger un document Word DOCX
Document doc = new Document("document.docx");
// Rechercher et remplacer du texte dans le document
doc.getRange().replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.FORWARD));
// Enregistrez le document Word
doc.save("Find-And-Replace-Text.docx");
Vous trouverez ci-dessous le document Word d’entrée que nous avons utilisé dans cet article.
Voici la sortie après avoir trouvé et remplacé le mot “sad”.
Rechercher et remplacer des mots similaires dans Word DOC/DOCX à l’aide de Java
Vous pouvez également personnaliser l’API pour rechercher et remplacer du texte en fonction de la similarité. Par exemple, les mots “sad”, “mad” et “bad” suivent un schéma similaire qui se termine par “ad”. Les identifiants de messagerie sont un autre exemple d’un tel texte. Dans de tels cas, vous pouvez définir un modèle regex pour rechercher et remplacer toutes les occurrences de texte ayant un modèle particulier. Voici les étapes pour y parvenir.
- Créez une instance de la classe Document et transmettez-lui le chemin du document Word.
- Définissez un modèle regex à l’aide de la méthode Pattern.compile() et transmettez-le à la méthode Document.getRange().replace(Pattern pattern, String replacement, FindReplaceOptions options).
- Enregistrez le document mis à jour à l’aide de la méthode Document.save(String).
L’exemple de code suivant montre comment rechercher et remplacer des mots similaires en fonction d’un modèle particulier à l’aide de Java.
// Charger un document Word DOCX
Document doc = new Document("document.docx");
// Rechercher et remplacer des mots similaires dans le document
FindReplaceOptions options = new FindReplaceOptions();
doc.getRange().replace(Pattern.compile("[B|S|M]ad"), "[replaced]", options);
// Enregistrez le document Word
doc.save("Find-And-Replace-Text.docx");
Voici la capture d’écran du document Word après la mise à jour de mots similaires.
Remplacer le texte dans l’en-tête/pied de page d’un document Word
Aspose.Words vous permet également de rechercher et de remplacer du texte uniquement dans l’en-tête/le pied de page du document Word. Voici les étapes pour effectuer cette opération.
- Créez une instance de la classe Document et transmettez-lui le chemin du document Word.
- Obtenez HeaderFooterCollection du document à l’aide de la méthode Document.getFirstSection().getHeadersFooters().
- Récupérez l’en-tête/le pied de page particulier dans l’objet HeaderFooter.
- Utilisez la méthode HeaderFooter.getRange().replace() pour rechercher et remplacer du texte.
- Enregistrez le document Word mis à jour.
L’exemple de code suivant montre comment rechercher et remplacer du texte dans l’en-tête/le pied de page d’un document Word à l’aide de Java.
// Charger un document Word DOCX
Document doc = new Document("document.docx");
// Accéder à la collection d'en-tête et de pied de page
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
HeaderFooter footer = headersFooters.get(HeaderFooterType.FOOTER_PRIMARY);
// Définir les options de recherche et de remplacement
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);
// Enregistrez le document Word
doc.save("Find-And-Replace-Text.docx");
La capture d’écran suivante montre le texte mis à jour dans le pied de page du document Word.
Rechercher et remplacer du texte par des méta-caractères dans Word DOCX à l’aide de Java
Il peut arriver que vous deviez rechercher et remplacer une phrase divisée en plusieurs lignes ou paragraphes. Dans de tels cas, vous devrez faire attention aux sauts de paragraphe, de section ou de ligne. Aspose.Words for Java vous permet de gérer facilement de tels cas. Voici les méta-caractères que vous pouvez utiliser pour différentes pauses :
- &p : saut de paragraphe
- &b : saut de section
- &m : saut de page
- &l : saut de ligne
L’exemple de code suivant montre comment rechercher et remplacer le texte par un saut de paragraphe dans un document Word.
// Charger un document Word DOCX
Document doc = new Document("document.docx");
// Définir les options
FindReplaceOptions options = new FindReplaceOptions();
// Désactiver la correspondance de casse et rechercher uniquement des mots entiers
options.setMatchCase(false);
options.setFindWholeWordsOnly(false);
// Remplacer le texte par un saut de paragraphe
doc.getRange().replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Enregistrez le document Word
doc.save("Find-And-Replace-Text.docx");
Voici la capture d’écran du document Word de sortie.
Conclusion
Dans cet article, vous avez vu comment rechercher et remplacer du texte dans des documents Word DOC/DOCX par programmation à l’aide de Java. Divers scénarios de recherche et de remplacement de texte dans des fichiers MS Word DOCX ont été traités à l’aide d’exemples de code. Vous pouvez en savoir plus sur Aspose.Words for Java dans la documentation.