ドキュメント内の単語やフレーズを置き換える理由はたくさんあります。ドキュメントを公開する前に機密コンテンツを消去する場合でも、電子メールIDや社会保障番号などのすべての個人情報を非表示/削除する場合でも、ドキュメントのコンテンツを編集する必要があります。この記事では、C#を使用して.NETアプリケーションでプログラムでWord文書を編集する方法について説明します。テキストを非表示にして編集する方法と、さまざまな手法を使用してテキスト、単語、またはフレーズを見つけて置き換える方法について個別に説明します。

以下のトピックについて以下で説明します。

テキストを置き換えるための.NETRedactionAPI

GroupDocs.Redaction for .NETは、さまざまなファイル形式のドキュメントから目的のデータを検索して置き換えることができるドキュメント編集APIです。 APIは、テキストの編集とラスタライズに加えて、メタデータ、注釈、スプレッドシート、および画像の編集機能を提供します。 Wordドキュメント、スプレッドシート、プレゼンテーション、画像、およびPDFドキュメントのサポートされているファイル形式 は、ドキュメントで入手できます。

ダウンロードセクション からDLLまたはMSIインストーラーをダウンロードするか、NuGet

PM> Install-Package GroupDocs.Redaction

このプロセスでは、MSOfficeやその他のサードパーティソフトウェアをインストールする必要はありません。それでは、ドキュメント内のテキストの検索と置換に対処するためのさまざまなアプローチを見てみましょう。以下は、デモンストレーションの例で使用されているWordドキュメントのスクリーンショットです。同じ方法は、コードを変更せずに他のドキュメント形式でも機能します。

C#を使用してWordドキュメント内の単語またはフレーズを検索して置換する

次の手順では、Wordドキュメント内の単語/フレーズを検索し、C#アプリケーション内で出現するすべてのテキストを他のテキストに置き換える方法について説明します。

  • Redactor クラスを使用してWord文書(DOC / DOCX) をロードします。
  • ReplacementOptions
  • RedactorのApply メソッドを使用して、編集を適用します。
  • 保存 メソッドを使用して変更を保存します。

次のコードは、C#の単語を検索して置き換えます。より正確には、「JohnDoe」のすべての出現箇所を「[censored]」に置き換えます。

// 正確なフレーズを見つけて、C#を使用して他のテキストに置き換えます
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save();
}

コードの出力は次のとおりです。

C#を使用したWordファイルでの大文字と小文字を区別する検索と置換

同様に、正確な単語を見つけて他の単語に置き換えることにより、大文字と小文字を区別してWord文書の編集を行うことができます。次のコードは、C#を使用してDOCXファイル内の「JohnDoe」という単語の存在を置き換えますが、今回は、検索で大文字と小文字が区別されます。

// 正確なフレーズ(大文字と小文字を区別) を検索し、C#を使用して他のテキストに置き換えます
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

コードの出力は次のとおりです。

C#を使用して正規表現(RegEx) を使用してWordファイルのテキストを置き換える

Word(DOC、DOCX) ファイル内のテキストのパターンを検索して置き換えるには、正規表現を使用できます。次の手順では、C#を使用してRegExでWord文書を編集できます。

  • Redactor クラスを使用してWordドキュメントをロードします。
  • ReplacementOptionsRegexRedaction クラスを使用して正規表現の一致を検索します 。
  • 適用 メソッドを使用して、すべての正規表現一致テキストを置き換えます。
  • 保存 メソッドを使用して、編集されたWordファイルを取得します。

次のコードは、RegExを使用してWordファイル内のテキストパターンを検索し、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();
}

上記のコードの出力は次のとおりです。

C#を使用して色付きのボックスでWord文書の機密テキストを非表示にする

プライベートコンテンツを置き換えたくないが、それをカバーしたいだけの場合、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の詳細については、ドキュメント にアクセスしてください。質問については、フォーラム からお問い合わせください。

関連項目