JavaでCSVファイルを比較する

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

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

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

GroupDocs.Comparisonは、CSVファイルをさまざまなオプションと比較できるJavaAPIを紹介しています。これを再び使用して、Javaアプリケーション内のCSVファイルを比較します。さらに、3つ以上のCSVファイルの比較、検出された変更の承認と拒否、およびパスワードで保護されたファイルの比較をサポートします。

ダウンロードして構成する

ダウンロードセクションからCSV比較ライブラリを入手してください。 MavenベースのJavaアプリケーションの場合、pom.xml内に次の構成を追加します。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

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

JavaでCSVファイルを比較する

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

Javaで3つ以上のCSVファイルを比較する

要件が3つ以上のCSVファイルを比較することである場合、2つのファイルのみを比較しているため、非常によく似ています。 3番目のファイルをComparerオブジェクトに追加するだけです。

以下は、Javaで3つ以上のCSVファイルを比較する手順です。

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

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

// Javaで複数(2つ以上)のCSVファイルを比較する

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");
comparer.add("path/comma-separated-file-3.csv");
// ..。
// ..。
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

Javaでパスワードで保護されたCSVファイルを比較する

さまざまなドキュメントの読み込み中に使用できるさまざまな利用可能なオプションがあります。 CSVファイルがパスワードで保護されている場合は、読み込み中にパスワードを入力できます。パスワードで保護された複数のCSVファイルを比較するための残りの手順は同じです。

以下は、Javaでパスワードで保護されたCSVファイルを比較する方法の手順です。

  • LoadOptionsクラスを使用して読み込みオプションを準備し、CSVファイルを開くためのパスワードを設定します。
  • 次に、Comparerクラスの初期化中に、比較する最初のCSVファイルを読み込みます。
  • 適切なaddメソッドを使用して2番目のファイルを追加します。
  • 同様に、任意の追加方法を使用して、他のCSVファイルをできるだけ多く追加します。
  • 最後に、compareメソッドを呼び出して、追加されたすべてのファイルの比較結果を取得します。

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

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

Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions("file1-password"));
comparer.add("path/comma-separated-file-2.csv", new LoadOptions("file2-password"));
final Path outputFilePath = comparer.compare("path/comparison-result.csv");

JavaでCSVファイルの識別された変更を受け入れるか拒否する

ドキュメント内で行われた変更を承認または拒否できるMicrosoftWordの変更の追跡機能と同じです。 Javaアプリケーション内に同じ機能を実装できます。ファイル比較を実行した後、識別された各変更を受け入れるか拒否することができます。以下は、CSVファイルを比較し、識別された変更を承認または拒否する手順です。

  • Comparerクラスを使用して、ソースCSVファイルとターゲットCSVファイルを読み込みます。
  • compareメソッドを使用して、ロードされたファイルの比較を実行します。
  • getChangesメソッドを使用して、識別された変更をフェッチします。
  • これで、変更をトラバースし、変更ごとにそれに応じてComparisonActionを設定できます。
    • 合意された変更については、ACCEPTとして設定できます。
    • 同意されない変更については、拒否として設定できます。
  • 最後に、applyChangesメソッドを呼び出して、変更が適用された結果のドキュメントを取得します。

次のJavaソースコードは、2つのCSVファイルを比較し、見つかった変更を受け入れて拒否します。

// JavaでCSVファイルを比較することにより、識別された変更を承認または拒否します

Comparer comparer = new Comparer("path/comma-separated-file-1.csv");
comparer.add("path/comma-separated-file-2.csv");

comparer.compare("path/comparison-result.csv");

ChangeInfo[] changes = comparer.getChanges();
changes[0].setComparisonAction(ComparisonAction.REJECT);
changes[1].setComparisonAction(ComparisonAction.ACCEPT);

comparer.applyChanges("path/comparison-result.csv", new SaveOptions(), new ApplyChangeOptions(changes));

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

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

結論

要約すると、今日、2つ以上のCSVファイルを比較する方法をJavaで学びました。識別された変更を受け入れて拒否するオプションに加えて、Javaアプリケーション内でパスワードで保護されたCSVファイルを比較することも学びました。

比較結果をカスタマイズするための他の多くのオプションを見つけることができます。比較の感度を設定したり、概要ページのみを表示したり、ギャップを無視したりすることができます。これらの機能については、ドキュメントからご覧ください。

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

関連項目