В этой статье рассматриваются различные подходы к поиску и замене текста в документах Word с помощью C# в приложениях .NET или .NET Core.

Найти и заменить — довольно полезная функция MS Word для быстрого поиска и замены нужного текста в документах. Это становится более удобным и экономит время, когда вы работаете с более длинными документами. В тех случаях, когда вам нужно найти и заменить текст в сотнях документов Word или вам нужно автоматизировать этот процесс, вы определенно решите сделать это программно. Итак, в этой статье я покажу вам, как программно находить и заменять текст в документах Word в различных сценариях с помощью C#. Прочитав эту статью, вы сможете:

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

Прежде всего, создайте новый проект C# (Console, ASP.NET и т. д.) в Visual Studio и установите Aspose.Words for .NET через диспетчер пакетов NuGet или консоль диспетчера пакетов.

Установка через диспетчер пакетов NuGet

Поиск и замена текста в Word DOC

Установка через консоль диспетчера пакетов

PM> Install-Package Aspose.Words

После того, как мы установили Aspose.Words для .NET, давайте начнем искать и заменять текст в следующем документе Word.

C# найти и заменить текст в документе Word

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

Ниже приведены шаги по поиску и замене определенного текста в документе Word с помощью Aspose.Words для .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 с помощью С#

Поиск и замена похожих слов в документах 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

Найти и заменить текст с помощью регулярных выражений в С#

Может быть случай, когда вы хотите найти и заменить текст, который появляется в определенном шаблоне. Например, вам нужно скрыть/заменить все идентификаторы электронной почты в документе 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: разрыв раздела
  • &м: разрыв страницы
  • &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, используя документацию.

Статьи по Теме

Совет: вас может заинтересовать бесплатный конвертер текста в GIF, который позволяет создавать анимацию из текста.