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.

Rechercher et remplacer du 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.

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.

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.

rechercher et remplacer du texte dans DOCX à l'aide de Java

Voici la sortie après avoir trouvé et remplacé le mot “sad”.

trouver et remplacer un mot

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.

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.

rechercher et remplacer des mots similaires à l'aide de Java

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.

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 dans le pied de page

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.

rechercher et remplacer du texte par des méta-caractères

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.

Voir également