У цій статті розглядаються різні підходи до пошуку та заміни тексту в документах Word за допомогою C# у програмах .NET або .NET Core.

Знайти та замінити – це досить корисна функція MS Word для швидкого пошуку та заміни потрібного тексту в документах. Це стає більш зручним і економить час, коли ви працюєте з довшими документами. У випадках, коли вам потрібно знайти та замінити текст у сотнях документів Word або вам потрібно автоматизувати цей процес, ви обов’язково виберете зробити це програмно. Отже, у цій статті я покажу вам, як програмно знайти та замінити текст у документах Word у різних сценаріях за допомогою C#. Прочитавши цю статтю, ви зможете:

Бібліотека C# для пошуку та заміни тексту в документі Word

Перш за все, створіть новий проект C# (Console, ASP.NET тощо) у Visual Studio та інсталюйте Aspose.Words for .NET через NuGet Package Manager або Package Manager Console.

Встановлення через диспетчер пакетів NuGet

Пошук і заміна тексту в Word DOC

Встановлення через консоль менеджера пакетів

PM> Install-Package Aspose.Words

Після того, як ми встановили Aspose.Words for .NET, давайте почнемо шукати та замінювати текст у наступному документі Word.

c# знайти та замінити текст у документі Word

Пошук і заміна тексту в документах Word на C#

Нижче наведено кроки для пошуку та заміни певного тексту в документі Word за допомогою Aspose.Words for .NET.

Клас FindReplaceOptions надає різні параметри для налаштування операцій пошуку/заміни. У наведеному нижче прикладі коду показано, як знайти та замінити певне слово чи рядок у документі Word за допомогою C#.

// Завантажте документ Word docx
Document doc = new Document("document.docx");
// Знайдіть і замініть текст у документі
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Збережіть документ Word
doc.Save("Find-And-Replace-Text.docx");

Вихід

знайти текст у документі word за допомогою c#

Знайдіть і замініть схожі слова в документах Word за допомогою C#

Ви також можете налаштувати API, щоб знаходити подібні слова та замінювати їх певним словом. Наприклад, можна знайти слова «сумний» і «божевільний» і замінити їх одним словом. У наведеному нижче прикладі коду показано, як знайти та замінити подібні слова в документі Word за допомогою C#.

// Завантажте документ Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Знайдіть і замініть текст у документі
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Збережіть документ Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Вихід

c# замінити текст у файлі docx

Пошук і заміна тексту за допомогою Regex у C#

Може бути випадок, коли ви хочете знайти та замінити текст, який відображається в певному шаблоні. Наприклад, вам потрібно приховати/замінити всі ідентифікатори електронної пошти в документі Word. У таких випадках ви можете створити регулярний вираз для ідентифікаторів електронної пошти та передати його в метод Document.Range.Replace(Regex, string, FindReplaceOptions).

У наведеному нижче прикладі коду показано, як знайти та замінити текст на основі шаблону в документі Word.

// Завантажте документ Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Установіть регулярний вираз для ідентифікаторів електронної пошти 
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])?");
// Знайдіть і замініть текст у документі
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Збережіть документ Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Вихід

як замінити текст в документі word

Ви також можете знайти та замінити текст у розділах верхнього або нижнього колонтитулів документа Word за допомогою класу HeaderFooter. Для цього використовується метод HeaderFooter.Range.Replace(string, string, FindReplaceOptions). У наведеному нижче прикладі коду показано, як замінити текст у верхньому/нижньому колонтитулі документа Word у C#.

// Завантажте документ Word
Document doc = new Document("document.docx");
// Доступ до верхнього/нижнього колонтитула документа Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Встановити параметри
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Замініть текст у нижньому колонтитулі документа Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Збережіть документ Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Вихід

Пошук і заміна тексту в документі Word у C#.NET

Пошук і заміна тексту метасимволами в документах Word за допомогою C#

Може бути сценарій, коли певний текст або фраза складається з кількох абзаців, розділів або сторінок. У таких випадках простий метод пошуку та заміни не працюватиме ефективно, і нам доведеться обробляти розриви абзаців, розділів або сторінок. Для цього Aspose.Words дозволяє використовувати наступні метасимволи в рядку пошуку або рядку заміни:

  • &p: розрив абзацу
  • &b: розрив розділу
  • &m: розрив сторінки
  • &l: розрив рядка

У наведеному нижче прикладі коду показано, як знайти та замінити текст із розривом абзацу в документі Word.

// Завантажте документ Word docx
Document doc = new Document("document.docx"); 
// Встановити параметри 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Замінити текст розривом абзацу
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Збережіть документ Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Вихід

знайти та замінити текст за допомогою регулярного виразу C#

Висновок

У цій статті описано деякі корисні способи програмного пошуку та заміни тексту в документі Word на основі відповідних або схожих слів, фраз і шаблонів регулярних виразів. Ці функції не лише автоматизують процес заміни тексту, але й заощаджують багато часу та зусиль, необхідних для ручного пошуку та заміни в документах Word. Ви можете дізнатися більше про бібліотеку Word Aspose за допомогою документації.

Пов’язані статті

Порада. Вас може зацікавити безкоштовний Text to GIF Converter, який дозволяє створювати анімацію з текстів.