Може бути багато причин замінити слово чи фразу в документі. Незалежно від того, чи бажаєте ви стерти конфіденційний вміст перед публічним доступом до документа, чи хочете приховати/видалити всю особисту інформацію, як-от ідентифікатори електронної пошти чи номери соціального страхування, вам потрібно відредагувати вміст документа. У цій статті описано, як програмно редагувати документи Word у ваших програмах .NET за допомогою C#. Ми окремо обговоримо, як відредагувати, приховавши текст, і як знайти та замінити текст, слова чи фрази за допомогою різних технік.

Нижче будуть розглянуті такі теми:

.NET Redaction API для заміни тексту

GroupDocs.Redaction for .NET — це API для редагування документів, який дозволяє знаходити та потім замінювати потрібні дані в документах різних форматів файлів. Окрім редагування та растеризації тексту, API надає функції редагування метаданих, анотацій, електронних таблиць і зображень. Підтримувані формати файлів документів Word, електронних таблиць, презентацій, зображень і PDF-документів доступні в документації.

Ви можете завантажити DLL або інсталятор MSI із розділу завантажень або встановити API у своїй програмі .NET через NuGet. /packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

У цьому процесі не потрібно встановлювати MS Office або будь-яке інше стороннє програмне забезпечення. Давайте почнемо й розглянемо різні підходи до пошуку та заміни тексту в документах. Нижче наведено знімок екрана документа Word, який використовується в прикладах для демонстрації. Ці ж методи працюватимуть для інших форматів документів без будь-яких змін у коді.

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

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

  • Завантажте документ Word (DOC/DOCX) за допомогою класу Redactor.
  • Знайдіть точну фразу чи слово за допомогою класу ExactPhraseRedaction із ReplacementOptions /redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Використовуйте метод Застосувати Redactor, щоб застосувати редагування.
  • Збережіть зміни за допомогою методу Зберегти.

Наступний код знаходить і замінює слово в C#. Точніше, він замінює всі випадки “John Doe” на “[censored]”.

// Знайдіть точну фразу та замініть її іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save();
}

Вихід коду виглядає наступним чином.

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

Подібним чином ви можете виконати редагування документа Word з урахуванням регістру, знайшовши точне слово та замінивши його будь-яким іншим. Наступний код замінює існування слова “John Doe” у файлі DOCX за допомогою C#, але цього разу пошук буде чутливим до регістру.

// Знайдіть точну фразу (з урахуванням регістру) і замініть її іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

Вихід коду виглядає наступним чином.

Заміна тексту у файлах Word за допомогою регулярних виразів (RegEx) за допомогою C#

Щоб знайти та замінити будь-який шаблон тексту у файлах Word (DOC, DOCX), ви можете використовувати регулярні вирази. Наступні кроки дозволяють відредагувати документ Word за допомогою RegEx за допомогою C#.

  • Завантажте документ Word за допомогою класу Redactor.
  • Знайдіть відповідність регулярного виразу за допомогою класу RegexRedaction із [ReplacementOptions](https://apireference.groupdocs.com/redaction/ net/groupdocs.redaction.redactions/replacementoptions).
  • Використовуйте метод Застосувати, щоб замінити всі тексти відповідності регулярних виразів.
  • Скористайтеся методом Зберегти, щоб отримати відредагований файл Word.

Наступний код показує, як знайти шаблон тексту у файлі Word за допомогою RegEx, а потім замінити/сховати його іншим текстом за допомогою C#.

// Знайдіть текст за допомогою регулярного виразу та замініть його іншим текстом за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save();
}

Результат наведеного вище коду виглядає наступним чином.

Приховати конфіденційний текст у документах Word за допомогою кольорового поля за допомогою C#

Якщо ви не хочете замінювати свій приватний вміст, а просто хочете його прикрити, API дозволяє приховати цей вміст, намалювавши над ним рамку. Наступний код розміщує чорний прямокутник над запланованим текстом для затемнення тексту за допомогою C#.

// Знайдіть текст і приховайте його, намалювавши над ним прямокутник за допомогою C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save();
}

Результат наведеного вище коду виглядає наступним чином.

Отримайте безкоштовну ліцензію API

Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати API без оціночних обмежень.

Висновок

Підсумовуючи, ви навчилися знаходити текст у файлах Word (DOC, DOCX) за допомогою різних технік і замінювати отримані дані різними способами. Точніше, ми обговорили, як знайти текст, слово або фразу, навіть якщо це пошук з урахуванням регістру або використання регулярного виразу в C#. Пізніше ми замінили результати пошуку іншим текстом або розмістили кольоровий прямокутник над текстом пошуку.

Щоб дізнатися більше про API, відвідайте документацію. Якщо у вас виникли запитання, зв’яжіться з нами через форум.

Дивись також