Cet article couvre diverses approches pour rechercher et remplacer du texte dans des documents Word à l’aide de C# dans des applications .NET ou .NET Core.

Rechercher et remplacer est une fonctionnalité très utile de MS Word pour localiser et remplacer rapidement le texte souhaité dans les documents. Cela devient plus pratique et vous fait gagner du temps lorsque vous travaillez avec des documents plus longs. Dans les cas où vous devez rechercher et remplacer du texte dans des centaines de documents Word ou si vous devez automatiser ce processus, vous choisirez certainement de le faire par programme. Ainsi, dans cet article, je vais vous montrer comment rechercher et remplacer du texte dans des documents Word par programmation dans différents scénarios à l’aide de C#. Une fois que vous aurez lu cet article, vous pourrez :

Bibliothèque C# pour rechercher et remplacer du texte dans un document Word

Tout d’abord, créez un nouveau projet C# (Console, ASP.NET, etc.) dans Visual Studio et installez Aspose.Words for .NET via NuGet Package Manager ou Package Manager Console.

Installation via le gestionnaire de packages NuGet

Recherche et remplacement de texte dans Word DOC

Installation via la console du gestionnaire de packages

PM> Install-Package Aspose.Words

Après avoir installé Aspose.Words for .NET, commençons maintenant à rechercher et à remplacer du texte dans le document Word suivant.

c# rechercher et remplacer du texte dans un document word

Rechercher et remplacer du texte dans des documents Word en C#

Voici les étapes pour rechercher et remplacer un texte particulier dans un document Word à l’aide de Aspose.Words for .NET.

La classe FindReplaceOptions fournit diverses options pour personnaliser les opérations de recherche/remplacement. L’exemple de code suivant montre comment rechercher et remplacer un mot ou une chaîne particulière dans un document Word à l’aide de C#.

// Charger un document Word docx
Document doc = new Document("document.docx");
// Rechercher et remplacer du texte dans le document
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Enregistrez le document Word
doc.Save("Find-And-Replace-Text.docx");

Production

trouver du texte dans un document word avec c#

Rechercher et remplacer des mots similaires dans des documents Word à l’aide de C#

Vous pouvez également personnaliser l’API pour rechercher des mots similaires et les remplacer par un mot particulier. Par exemple, vous pouvez rechercher les mots “triste” et “fou” et les remplacer par un seul mot. L’exemple de code suivant montre comment rechercher et remplacer des mots similaires dans un document Word à l’aide de C#.

// Charger un document Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Rechercher et remplacer du texte dans le document
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Enregistrez le document Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Production

c# remplacer le texte dans le fichier docx

Rechercher et remplacer du texte à l’aide de Regex en C#

Il peut arriver que vous souhaitiez rechercher et remplacer du texte qui apparaît dans un modèle particulier. Par exemple, vous devez masquer/remplacer tous les identifiants de messagerie dans un document Word. Dans de tels cas, vous pouvez créer une expression régulière pour les identifiants de messagerie et la transmettre à la méthode Document.Range.Replace(Regex, string, FindReplaceOptions).

L’exemple de code suivant montre comment rechercher et remplacer du texte en fonction d’un modèle dans un document Word.

// Charger un document Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Définir une expression régulière pour les identifiants de messagerie 
Regex EmailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
// Rechercher et remplacer du texte dans le document
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Enregistrez le document Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Production

comment remplacer du texte dans un document word

Vous pouvez également rechercher et remplacer du texte dans les sections d’en-tête ou de pied de page d’un document Word à l’aide de la classe HeaderFooter. La méthode HeaderFooter.Range.Replace(string, string, FindReplaceOptions) est utilisée à cette fin. L’exemple de code suivant montre comment remplacer du texte dans l’en-tête/le pied de page d’un document Word en C#.

// Charger un document Word
Document doc = new Document("document.docx");
// Accéder à l'en-tête/pied de page du document Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Définir les options
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Remplacer le texte dans le pied de page du document Word
footer.Range.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-in-Footer.docx");

Production

Document Word Recherche et remplacement de texte dans C#.NET

Rechercher et remplacer du texte par des méta-caractères dans des documents Word à l’aide de C#

Il pourrait y avoir un scénario où un texte ou une phrase particulière est composée de plusieurs paragraphes, sections ou pages. Dans de tels cas, la simple méthode de recherche et de remplacement ne fonctionnerait pas efficacement et nous devrons gérer les sauts de paragraphe, les sauts de section ou les sauts de page. Pour cela, Aspose.Words vous permet d’utiliser les méta-caractères suivants dans la chaîne de recherche ou la chaîne de remplacement :

  • &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
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Remplacer le texte par un saut de paragraphe
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Enregistrez le document Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Production

rechercher et remplacer du texte à l'aide d'une expression régulière C#

Conclusion

Cet article présente des méthodes utiles pour rechercher et remplacer par programmation du texte dans un document Word en fonction de mots, d’expressions et de modèles d’expressions régulières correspondants ou similaires. Ces fonctionnalités automatisent non seulement le processus de remplacement de texte, mais vous permettent également d’économiser beaucoup de temps et d’efforts lors de la recherche et du remplacement manuels dans les documents Word. Vous pouvez en savoir plus sur la bibliothèque de mots d’Aspose en utilisant documentation.

Articles Liés

Astuce : Vous pourriez être intéressé par un Convertisseur de texte en GIF gratuit qui vous permet de générer des animations à partir de textes.