W tym artykule opisano różne podejścia do znajdowania i zastępowania tekstu w dokumentach programu Word przy użyciu języka C# w aplikacjach platformy .NET lub .NET Core.
Znajdź i zamień to całkiem przydatna funkcja MS Word, która pozwala szybko zlokalizować i zamienić żądany tekst w dokumentach. Staje się bardziej poręczny i oszczędza czas podczas pracy z dłuższymi dokumentami. W przypadkach, gdy musisz znaleźć i zamienić tekst w setkach dokumentów programu Word lub musisz zautomatyzować ten proces, zdecydowanie zdecydujesz się zrobić to programowo. W tym artykule pokażę, jak znaleźć i zamienić tekst w dokumentach programu Word programowo w różnych scenariuszach przy użyciu języka C#. Po przeczytaniu tego artykułu będziesz mógł:
- znajdź i zamień tekst w Word DOC/DOCX przy użyciu C#
- znajdź i zamień podobne słowa w dokumencie programu Word
- znajdź i zamień tekst za pomocą Regex
- znajdź i zamień tekst w nagłówku / stopce dokumentu Word
- znajdź i zamień tekst na metaznaki w dokumencie programu Word
Biblioteka C# do wyszukiwania i zastępowania tekstu w dokumencie programu Word
Przede wszystkim utwórz nowy projekt C# (Console, ASP.NET itp.) w Visual Studio i zainstaluj Aspose.Words for .NET za pośrednictwem NuGet Package Manager lub Package Manager Console.
Instalowanie za pomocą Menedżera pakietów NuGet
Instalowanie za pomocą konsoli Menedżera pakietów
PM> Install-Package Aspose.Words
Po zainstalowaniu Aspose.Words for .NET, zacznijmy odnajdywać i zastępować tekst w następującym dokumencie programu Word.
Znajdź i zamień tekst w dokumentach programu Word w języku C#
Poniżej przedstawiono kroki, aby znaleźć i zamienić określony tekst w dokumencie programu Word przy użyciu Aspose.Words for .NET.
- Utwórz instancję klasy Document i zainicjuj ją ścieżką dokumentu Worda.
- Znajdź i zamień tekst przy użyciu metody Document.Range.Replace(string, string, FindReplaceOptions).
- Zapisz dokument metodą Document.Save(string).
Klasa FindReplaceOptions zapewnia różne opcje dostosowywania operacji znajdowania/zamieniania. Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić określony wyraz lub ciąg w dokumencie programu Word przy użyciu języka C#.
// Załaduj dokument Word docx
Document doc = new Document("document.docx");
// Znajdź i zamień tekst w dokumencie
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Zapisz dokument Worda
doc.Save("Find-And-Replace-Text.docx");
Wyjście
Znajdź i zamień podobne słowa w dokumentach programu Word przy użyciu języka C#
Możesz także dostosować interfejs API, aby znaleźć podobne słowa i zastąpić je konkretnym słowem. Na przykład możesz znaleźć słowa „smutny” i „szalony” i zastąpić je jednym słowem. Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić podobne wyrazy w dokumencie programu Word przy użyciu języka C#.
// Załaduj dokument Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true;
// Znajdź i zamień tekst w dokumencie
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Zapisz dokument Worda
doc.Save("Find-And-Replace-Multiple-Words.docx");
Wyjście
Znajdź i zamień tekst za pomocą wyrażenia regularnego w C#
Może się zdarzyć, że chcesz znaleźć i zamienić tekst, który pojawia się w określonym wzorcu. Na przykład musisz ukryć / zamienić wszystkie identyfikatory e-mail w dokumencie programu Word. W takich przypadkach możesz utworzyć wyrażenie regularne dla identyfikatorów e-mail i przekazać je do metody Document.Range.Replace(Regex, string, FindReplaceOptions).
Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst na podstawie wzorca w dokumencie programu Word.
// Załaduj dokument Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true;
// Ustaw wyrażenie regularne dla identyfikatorów e-mail
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])?");
// Znajdź i zamień tekst w dokumencie
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Zapisz dokument Worda
doc.Save("Find-And-Replace-Text-Using-Regex.docx");
Wyjście
Znajdź i zamień tekst w nagłówku / stopce dokumentu programu Word za pomocą języka C#
Możesz również znaleźć i zamienić tekst w sekcjach nagłówka lub stopki dokumentu programu Word, używając klasy HeaderFooter. W tym celu używana jest metoda HeaderFooter.Range.Replace(string, string, FindReplaceOptions). Poniższy przykładowy kod pokazuje, jak zamienić tekst w nagłówku/stopce dokumentu programu Word w języku C#.
// Załaduj dokument programu Word
Document doc = new Document("document.docx");
// Dostęp do nagłówka/stopki dokumentu programu Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Ustaw opcje
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// Zastąp tekst w stopce dokumentu programu Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Zapisz dokument Worda
doc.Save("Find-And-Replace-Text-in-Footer.docx");
Wyjście
Znajdź i zamień tekst na metaznaki w dokumentach programu Word przy użyciu języka C#
Może istnieć scenariusz, w którym określony tekst lub fraza składa się z wielu akapitów, sekcji lub stron. W takich przypadkach prosta metoda znajdowania i zastępowania nie zadziałałaby skutecznie i będziemy musieli zająć się podziałami akapitów, podziałami sekcji lub podziałami stron. W tym celu Aspose.Words umożliwia użycie następujących metaznaków w ciągu wyszukiwania lub ciągu zastępczym:
- &p: podział akapitu
- &b: podział sekcji
- &m: podział strony
- &l: podział wiersza
Poniższy przykładowy kod pokazuje, jak znaleźć i zamienić tekst na podział akapitu w dokumencie programu Word.
// Załaduj dokument Word docx
Document doc = new Document("document.docx");
// Ustaw opcje
FindReplaceOptions options = new FindReplaceOptions
{
MatchCase = false,
FindWholeWordsOnly = false
};
// Zastąp tekst podziałem akapitu
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Zapisz dokument Worda
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");
Wyjście
Wniosek
W tym artykule opisano kilka przydatnych sposobów znajdowania i zastępowania tekstu w dokumencie programu Word na podstawie dopasowanych lub podobnych słów, wyrażeń i wzorców wyrażeń regularnych programowo. Funkcje te nie tylko automatyzują proces zastępowania tekstu, ale także oszczędzają wiele czasu i wysiłku wymaganego przy ręcznym znajdowaniu i zastępowaniu operacji w dokumentach programu Word. Możesz dowiedzieć się więcej o Bibliotece Word Aspose za pomocą documentation.
Powiązane artykuły)
- Znajdź i zamień tekst w dokumentach programu Word przy użyciu języka Java
- .NET Word Automation — Twórz dokumenty Rich Word w C#
Wskazówka: być może zainteresuje Cię darmowy Konwerter tekstu na GIF, który pozwala generować animacje z tekstów.