Dieser Artikel behandelt verschiedene Ansätze zum Suchen und Ersetzen von Text in Word Dokumenten mithilfe von C# in .NET oder .NET Core Anwendungen.
Suchen und Ersetzen ist eine sehr nützliche Funktion von MS Word, um den gewünschten Text in den Dokumenten schnell zu finden und zu ersetzen. Es wird praktischer und zeitsparender, wenn Sie mit längeren Dokumenten arbeiten. In Fällen, in denen Sie Text in Hunderten von Word Dokumenten suchen und ersetzen oder diesen Prozess automatisieren müssen, entscheiden Sie sich definitiv dafür, dies programmgesteuert zu tun. Daher zeige ich Ihnen in diesem Artikel, wie Sie Text in Word Dokumenten programmgesteuert in verschiedenen Szenarien mit C# suchen und ersetzen. Wenn Sie diesen Artikel gelesen haben, können Sie:
- Suchen und Ersetzen von Text in Word DOC/DOCX mit C#
- Finden und ersetzen Sie ähnliche Wörter in Word Dokumenten
- Suchen und Ersetzen von Text mit Regex
- Finden und ersetzen Sie Text in der Kopf-/Fußzeile von Word Dokumenten
- Suchen und Ersetzen von Text durch Metazeichen in Word Dokumenten
C# Bibliothek zum Suchen und Ersetzen von Text in einem Word Dokument
Erstellen Sie zunächst ein neues C# Projekt (Console, ASP.NET usw.) in Visual Studio und installieren Sie Aspose.Words for .NET über NuGet Package Manager oder Package Manager Console.
Installation über den NuGet Package Manager
Installation über die Paket-Manager Konsole
PM> Install-Package Aspose.Words
Nachdem wir Aspose.Words for .NET installiert haben, beginnen wir nun mit dem Suchen und Ersetzen von Text im folgenden Word Dokument.
Suchen und Ersetzen von Text in Word Dokumenten in C#
Im Folgenden finden Sie die Schritte zum Suchen und Ersetzen eines bestimmten Texts in einem Word Dokument mit Aspose.Words for .NET.
- Erstellen Sie eine Instanz der Klasse Document und initialisieren Sie sie mit dem Pfad des Word Dokuments.
- Suchen und ersetzen Sie Text mit der methode Document.Range.Replace(string, string, FindReplaceOptions).
- Speichern Sie das Dokument mit der methode Document.Save(string).
Die Klasse FindReplaceOptions bietet verschiedene Optionen zum Anpassen der Suchen/Ersetzen-Vorgänge. Das folgende Codebeispiel zeigt, wie Sie ein bestimmtes Wort oder eine bestimmte Zeichenfolge in einem Word Dokument mit C# suchen und ersetzen.
// Laden Sie ein Word-docx-Dokument
Document doc = new Document("document.docx");
// Text im Dokument suchen und ersetzen
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Speichern Sie das Word Dokument
doc.Save("Find-And-Replace-Text.docx");
Ausgabe
Suchen und Ersetzen ähnlicher Wörter in Word Dokumenten mit C#
Sie können die API auch anpassen, um ähnliche Wörter zu finden und sie durch ein bestimmtes Wort zu ersetzen. Sie können beispielsweise die Wörter „traurig“ und „verrückt“ finden und sie durch ein einziges Wort ersetzen. Das folgende Codebeispiel zeigt, wie ähnliche Wörter in Word Dokumenten mithilfe von C# gesucht und ersetzt werden.
// Laden Sie ein Word-docx-Dokument
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true;
// Text im Dokument suchen und ersetzen
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Speichern Sie das Word Dokument
doc.Save("Find-And-Replace-Multiple-Words.docx");
Ausgabe
Suchen und Ersetzen von Text mit Regex in C#
Es kann vorkommen, dass Sie Text suchen und ersetzen möchten, der in einem bestimmten Muster erscheint. Beispielsweise müssen Sie alle Email-IDs in einem Word Dokument ausblenden/ersetzen. In solchen Fällen können Sie einen regulären Ausdruck für Email-IDs erstellen und an die Methode Document.Range.Replace(Regex, string, FindReplaceOptions) übergeben.
Das folgende Codebeispiel zeigt, wie Text basierend auf einem Muster in einem Word Dokument gesucht und ersetzt wird.
// Laden Sie ein Word-docx-Dokument
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true;
// Legen Sie reguläre Ausdrücke für Email-IDs fest
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])?");
// Text im Dokument suchen und ersetzen
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Speichern Sie das Word Dokument
doc.Save("Find-And-Replace-Text-Using-Regex.docx");
Ausgabe
Suchen und Ersetzen von Text in der Kopf-/Fußzeile eines Word Dokuments mit C#
Mit der Klasse HeaderFooter können Sie auch Text in den Kopf oder Fußzeilenabschnitten eines Word Dokuments suchen und ersetzen. Dazu wird die Methode HeaderFooter.Range.Replace(string, string, FindReplaceOptions) verwendet. Das folgende Codebeispiel zeigt, wie Text in der Kopf-/Fußzeile eines Word Dokuments in C# ersetzt wird.
// Laden Sie ein Word Dokument
Document doc = new Document("document.docx");
// Greifen Sie auf die Kopf-/Fußzeile des Word Dokuments zu
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Optionen festlegen
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// Ersetzen Sie den Text in der Fußzeile des Word Dokuments
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Speichern Sie das Word Dokument
doc.Save("Find-And-Replace-Text-in-Footer.docx");
Ausgabe
Suchen und Ersetzen von Text durch Metazeichen in Word Dokumenten mit C#
Es könnte ein Szenario geben, in dem ein bestimmter Text oder Satz aus mehreren Absätzen, Abschnitten oder Seiten besteht. In solchen Fällen würde die einfache Suchen-und-Ersetzen methode nicht effektiv funktionieren und wir müssen uns um die Absatzumbrüche, Abschnittsumbrüche oder Seitenumbrüche kümmern. Dazu erlaubt Ihnen Aspose.Words die Verwendung der folgenden Metazeichen im Suchstring oder im Ersetzungsstring:
- &p: Absatzumbruch
- &b: Abschnittsumbruch
- &m: Seitenumbruch
- &l: Zeilenumbruch
Das folgende Codebeispiel zeigt, wie der Text in einem Word Dokument durch einen Absatzumbruch gesucht und ersetzt wird.
// Laden Sie ein Word-docx-Dokument
Document doc = new Document("document.docx");
// Optionen festlegen
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// Text durch Absatzumbruch ersetzen
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Speichern Sie das Word Dokument
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");
Ausgabe
Fazit
Dieser Artikel behandelt einige nützliche Methoden zum programmgesteuerten Suchen und Ersetzen von Text in einem Word Dokument basierend auf übereinstimmenden oder ähnlichen Wörtern, Ausdrücken und Regex-Mustern. Diese Funktionen automatisieren nicht nur den Textersetzungsprozess, sondern ersparen Ihnen auch viel Zeit und Mühe beim manuellen Suchen und Ersetzen in Word Dokumenten. Sie können mehr über die Wortbibliothek von Aspose erfahren, indem Sie Dokumentation verwenden.
In Verbindung stehende Artikel
- Suchen und Ersetzen von Text in Word Dokumenten mit Java
- .NET Word Automatisierung – Erstellen Sie Rich Word Dokumente in C#
Tipp: Möglicherweise interessieren Sie sich für einen kostenlosen Text to GIF Converter, mit dem Sie Animationen aus Texten generieren können.