在 Java 中比較 CSV 文件

我們已經在我們的 Java 應用程序中討論了如何比較兩個 CSV 文件的基本方法。今天這篇文章,我們將進一步學習在Java中比較兩個以上的CSV。我們將進一步討論如何比較受密碼保護的 CSV 文件。最後,將研究如何使用 Java 應用程序中的比較 API 接受和拒絕發現的更改。

以下主題涵蓋如下:

用於比較 CSV 文件的 Java API

GroupDocs.Comparison 展示了其 Java API,該 API 允許比較具有不同選項的 CSV 文件。我將再次使用它來比較 Java 應用程序中的 CSV 文件。此外,它支持比較兩個以上的 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 對兩個 CSV 文件的基本比較 已經在另一篇文章中進行了討論。在那裡,我們查看了文件比較 Java 源代碼、示例輸入和比較輸出文件。在繼續之前,您可以訪問該文章。

在 Java 中比較兩個以上的 CSV 文件

如果要求比較兩個以上的 CSV 文件,則非常相似,因為我們只比較兩個文件。只需將第三個文件添加到 Comparer 對象即可。

以下是在 Java 中比較兩個以上 CSV 文件的步驟。

  • 使用第一個 CSV 文件實例化 Comparer 類。
  • 使用適當的添加方法添加第二個文件。
  • 同樣,使用 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 文件。
  • 現在加載第一個 CSV 文件進行比較,同時初始化 Comparer 類。
  • 使用適當的添加方法添加第二個文件。
  • 同樣,使用任何添加方法添加盡可能多的其他 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 文件的已識別更改

就像 Microsoft Word 的跟踪更改功能一樣,它允許我們接受或拒絕文檔中所做的更改。您可以在 Java 應用程序中實現相同的功能。執行文件比較後,您可以接受或拒絕每個已識別的更改。以下是比較 CSV 文件並接受或拒絕識別的更改的步驟。

  • 使用 Comparer 類加載源和目標 CSV 文件。
  • 使用 compare 方法對加載的文件進行比較。
  • 使用 getChanges 方法獲取已識別的更改。
  • 現在您可以遍歷更改並為每個更改相應地設置它們的 ComparisonAction。
    • 對於同意的更改,您可以將其設置為接受。
    • 對於不同意的更改,您可以將其設置為 REJECT。
  • 最後,調用 applyChanges 方法以獲取具有已應用更改的結果文檔。

以下 Java 源代碼比較兩個 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。

結論

綜上所述,今天我們學習了 Java 方式如何比較兩個或多個 CSV 文件。除了接受和拒絕已識別更改的選項外,我們還學習了在 Java 應用程序中比較受密碼保護的 CSV 文件。

您可以找到許多其他選項來自定義比較結果。您可以設置比較敏感度、僅顯示摘要頁面、忽略差距等等。從 文檔 中了解這些功能。

您可以開始為各種支持的文檔格式 構建自己的比較應用程序。如有疑問,請通過 論壇 聯繫我們。

也可以看看