ワードプロセッシングドキュメントは、契約書、契約書、書類、およびその他の多くの公式ドキュメントを作成するための最も一般的な方法です。 Microsoft Wordの変更の追跡オプションのように、2つのWord文書を比較してマージする必要がある場合は、.NETアプリケーション内でプログラムで実行できます。この記事では、** 2つのWord文書を比較し、C#を使用して特定された違いを強調する方法**について説明します。さらに、パスワードで保護されたドキュメントを比較する方法、変更を承認および拒否する方法、および3つ以上のドキュメントをC#の例と比較する方法についても説明します。

.NET APIを使用して、Word文書を比較して違いを見つけます

ここでは、次のトピックについて説明します。

Word文書を比較するための.NETAPI

GroupDocs.Comparisonは、.NETアプリケーション内で複数のファイル形式のさまざまなドキュメントを比較してマージすることを可能にする.NETAPIを提供します。その.NETAPI、つまりGroupDocs.Comparison for .NETを使用して、Word文書を比較します。

DLLまたはMSIインストーラーはダウンロードセクションからダウンロードするか、NuGetを介して.NETアプリケーションにAPIをインストールできます。

PM> Install-Package GroupDocs.Comparison

C#を使用してWord文書を比較する

ドキュメントのバージョンが2つある場合は、ドキュメントを比較して違い(追加、削除) を見つけ、すべての変更を示す新しいドキュメントを作成できます。以下は、任意の2つのWord文書を比較し、違いを強調するための手順です。

  • Comparerクラスを使用して最初のWordドキュメントをロードします。
  • Add() メソッドを使用して、2番目のファイルをComparerに追加します。
  • Compare() メソッドを呼び出すだけで、getchangesサマリーを比較します。

次のC#コードは、Word文書を比較し、結果の文書の変更を取得する方法を示しています。

/*
 * C#を使用して2つのWordドキュメントとハイライトの変更を比較する
 */
using (Comparer comparer = new Comparer("path/document.docx"))
{
    comparer.Add("path/document-ver2.docx");
    comparer.Compare("path/compared-result.docx");
}

C#を使用してWord文書の識別された変更を承認または拒否する

MS Wordの変更の追跡オプションと同様に、識別された各変更を受け入れるか拒否することができます。以下は、Word文書内で特定された変更を比較し、承認または拒否する手順です。

  • Comparerクラスを使用して、ソースドキュメントをロードし、ターゲットWordドキュメントを追加します。
  • Compare() メソッドを使用してロードされたドキュメントの比較を行います。
  • GetChanges() メソッドを使用して識別された変更を取得します。
  • これで、変更をトラバースして、各変更のComparisonActionを設定できます。
    • 変更ごとに、承認または拒否を選択できます。
  • 変更が完了したら、ApplyChanges() メソッドを呼び出して、変更が適用された結果のドキュメントを取得します。

次のC#ソースコードは、2つのWord文書を比較し、識別された変更を受け入れてから、別の変更を拒否します。

/*
 * C#を使用してWord文書を比較することにより、特定された変更を受け入れて拒否します
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // 最初に識別された変更を拒否すると、結果ドキュメントに追加されません
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}

C#を使用して3つ以上のドキュメントを比較する

同様に、2つ以上のドキュメントを一度に比較できます。以下は、複数のWord文書の違いを比較し、特定された変更を強調する手順です。

  • Comparerクラスを使用して最初のWordドキュメントをロードします。
  • Add() メソッドを使用して、他のドキュメントをComparerに追加し続けます。
  • Compare() メソッドを呼び出して、変更と変更の概要を取得します。

次のC#コードは、3つ以上のWord文書を比較し、結果の文書の変更を取得する方法を示しています。

/*
 * C#を使用して複数のWordドキュメントを比較する
 */
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
    comparer.Add("path/document-2.docx");
    comparer.Add("path/document-3.docx");
    comparer.Add("path/document-4.docx");

    comparer.Compare("path/compare-result.docx");
}

C#を使用してパスワードで保護されたWordドキュメントを比較する

ドキュメントがパスワードで保護されている場合は、ドキュメントの読み込み中にパスワードを入力するだけです。次の手順は、C#を使用してパスワードで保護されたドキュメントのコンテンツを比較する方法を示しています。

  • パスワードを入力して、ソースドキュメントとターゲットドキュメントの読み込みオプションを準備します。
  • Comparerクラスを使用してソースドキュメントをロードします。
  • 準備されたロードオプションを使用して、ターゲットドキュメントをComparerに追加します。
  • Compare() メソッドを呼び出して、相違点の要約を取得します。

次のC#コード例は、パスワードで保護された2つのWordファイルを比較し、違いを強調する結果のドキュメントを生成します。

/*
 * C#を使用してパスワードで保護されたWordドキュメントを比較する
 */
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare("path/compared-protected-docs-result.docx");
}

無料のAPIライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにAPIを使用できます。

結論

結論として、C#を使用して2つ以上のWordドキュメントを比較することを学びました。さらに、違いを強調した後、特定された変更をプログラムで受け入れて拒否することを学びました。最後に、.NETアプリケーション内でパスワードで保護されたWordドキュメントを比較する方法についても説明しました。

比較感度の設定、要約ページのみの表示、ギャップの無視など、他にも多くの比較結果を制御するためのカスタマイズがあります。 ** GroupDocs.Comparison for.NET**の詳細をご覧ください。そのドキュメントにアクセスして、さまざまなサポートされているドキュメント形式用の独自のドキュメント比較アプリケーションの構築を開始してください。お問い合わせは、フォーラムまでお問い合わせください。

関連項目