C#.NETを使用してCSVファイルを比較する

最近、.NETアプリケーション内で2つのCSVファイルを比較する基本的な方法について説明しました。今日、この記事では、C#を使用して3つ以上のCSVを比較する方法をさらに学習します。さらに、パスワードで保護されたCSVファイルを比較する方法についても説明します。最後になりましたが、.NETアプリケーション内でC#を使用して、見つかった変更を受け入れて拒否する方法。

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

CSVファイルを比較するための.NETAPI

GroupDocs.Comparisonには.NETAPIがあり、CSVファイルをさまざまな方法で比較できます。これを使用して、.NETアプリケーション内のCSVファイルを比較します。さらに、3つ以上のCSVファイル、パスワードで保護されたファイルの比較をサポートし、検出された変更を受け入れたり拒否したりします。

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

PM> Install-Package GroupDocs.Comparison

その機能の実行例は、GitHubでも入手できます。ガイダンスについては、そのドキュメントおよびAPIリファレンスにアクセスしてください。

C#を使用してCSVファイルを比較する

2つのCSVファイルの基本的な比較についてはすでに説明しました。そこで、ファイル比較C#ソースコード、比較用のサンプル入力ファイル、および比較出力ファイルを調べました。基本的な比較については、その記事にアクセスしてください。

C#を使用して3つ以上のCSVファイルを比較する

比較するCSVファイルが3つ以上ある場合は、心配する必要はありません。 2つのファイルを比較するのと同じくらい簡単です。 3番目のファイルをComparerに追加する必要があります。

以下は、C#を使用して3つ以上のCSVファイルを比較する手順です。

  • 比較する最初のCSVファイルでComparerクラスをインスタンス化します。
  • 適切なAddメソッドを使用して2番目のCSVファイルを追加します。
  • 同様に、Addメソッドを使用して他のCSVファイルをできるだけ多く追加します。
  • 最後に、Compareメソッドを呼び出して、追加されたすべてのCSVファイルの比較結果を取得します。

次のC#ソースコードは、複数のCSVファイルを比較し、比較結果を個別のCSVファイルとHTMLファイルに生成します。 HTML出力ファイルは、さまざまな色で変更を強調表示します。

// C#を使用して複数(2つ以上)のCSVファイルを比較する

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // 比較する複数のCSVファイルを追加する
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ..。
    // ..。
    comparer.Compare("path/comparison-result.csv");
}

C#を使用してパスワードで保護されたCSVファイルを比較する

CSVファイルがパスワードで保護されている場合は、これらのファイルを読み込むときにパスワードを入力するだけです。パスワードで保護された複数のCSVファイルを比較するための残りの手順に違いはありません。

以下は、C#を使用してパスワードで保護されたCSVファイルを比較する手順です。

  • LoadOptionsクラスを使用し、パスワードを設定してCSVファイルを開くことにより、読み込みオプションを準備します。
  • Comparerクラスをインスタンス化するときに、比較する最初のCSVファイルをロードします。
  • 適切なAddメソッドを使用して2番目のCSVファイルを追加します。
  • 同様に、Addメソッドのいずれかを使用して他のCSVファイルをできるだけ多く追加します。
  • 最後に、Compareメソッドを呼び出して、追加されたすべてのCSVファイルの比較を取得します。

次のC#ソースコードは、パスワードで保護された複数のCSVファイルを比較し、比較結果を個別のCSVファイルとHTMLファイルに生成します。

// C#を使用してパスワードで保護されたCSV(カンマ区切り値)ファイルを比較する

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions(){ Password = "file1-password" }))
{
    comparer.Add("path/comma-separated-file-2.csv", new LoadOptions(){ Password = "file2-password" });
    comparer.Compare("path/comparison-result.csv");
}

C#を使用してCSVファイルの識別された変更を承認または拒否する

Microsoft Wordの機能と同様に、.NETアプリケーション内のCSVファイルに変更の追跡オプションを実装できます。ファイル比較後、識別された各変更を受け入れるか拒否することができます。以下は、CSVファイルを比較して、識別された変更を承認または拒否する手順です。

  • Comparerクラスを使用して、ソースをロードし、ターゲットCSVファイルを追加します。
  • Compareメソッドを使用して、ロードされたファイルの比較を実行します。
  • GetChangesメソッドを使用して、識別された変更をフェッチします。
  • これで、変更をトラバースして、各変更のComparisonActionを設定できます。
    • 合意された変更については、承認として設定できます。
    • 同意されない変更については、拒否として設定できます。
  • 最後に、ApplyChangesメソッドを呼び出して、変更が適用された結果のドキュメントを取得します。

次のC#ソースコードは、2つのCSVファイルを比較し、それに応じて変更を受け入れたり拒否したりします。

/*
 * C#を使用してCSVファイルを比較することにより、識別された変更を承認または拒否します
 */
using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // 最初の変更を拒否し、2番目に識別された変更を受け入れます。
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

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

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

結論

要約すると、今日は、C#を使用して2つ以上のCSVファイルを比較する方法を学びました。パスワードで保護されたCSVファイルの比較に加えて、.NETアプリケーション内で特定された変更をプログラムで受け入れて拒否する方法を学びました。

比較感度の設定、要約ページのみの表示、ギャップの無視など、比較結果を制御するためのカスタマイズは他にもたくさんあります。これらの機能については、ドキュメントからご覧ください。

さまざまなサポートされているドキュメント形式用に独自の比較アプリケーションの構築を開始できます。ご不明な点がございましたら、フォーラムまでお問い合わせください。

関連項目