使用 C# .NET 比較 CSV 文件

我們最近在 .NET 應用程序中討論了如何比較兩個 CSV 文件的基本方法。今天,在本文中,我們將進一步學習使用C#比較兩個以上的CSV。此外,我們將討論如何比較受密碼保護的 CSV 文件。最後但同樣重要的是,如何在 .NET 應用程序中使用 C# 接受和拒絕發現的更改。

以下主題涵蓋如下:

用於比較 CSV 文件的 .NET API

GroupDocs.Comparison 有其 .NET API,允許以各種方式比較 CSV 文件。我們將使用它來比較 .NET 應用程序中的 CSV 文件。它還支持比較兩個以上的 CSV 文件、受密碼保護的文件,接受和拒絕發現的更改。

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或者通過 NuGet 將其包添加到您的 .NET 應用程序來安裝 API。

PM> Install-Package GroupDocs.Comparison

GitHub 也提供了其功能的運行示例。訪問其 文檔API 參考 以獲得指導。

使用 C# 比較 CSV 文件

我們之前已經討論了兩個 CSV 文件的基本比較。在那裡,我們查看了文件比較 C# 源代碼、用於比較的樣本輸入文件和比較輸出文件。您可以訪問該文章進行基本比較。

使用 C# 比較兩個以上的 CSV 文件

如果您要比較兩個以上的 CSV 文件,則無需擔心。它就像比較兩個文件一樣簡單。您只需要將第三個文件添加到比較器。

以下是使用 C# 比較兩個以上 CSV 文件的步驟。

  • 使用要比較的第一個 CSV 文件實例化 Comparer 類。
  • 使用適當的添加方法添加第二個 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 文件進行比較。
  • 使用適當的添加方法添加第二個 CSV 文件。
  • 同樣,使用任何添加方法添加盡可能多的其他 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。
    • 對於同意的更改,您可以將它們設置為接受。
    • 對於不同意的更改,您可以將它們設置為 Reject。
  • 最後,調用 ApplyChanges 方法以獲取具有已應用更改的結果文檔。

以下 C# 源代碼比較兩個 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();
    
    // 拒絕第一個並接受第二個確定的更改。
    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# 比較兩個或多個 CSV 文件。通過比較受密碼保護的 CSV 文件,我們學會了以編程方式接受和拒絕 .NET 應用程序中已識別的更改。

還有許多其他自定義項可以控制比較結果,例如設置比較靈敏度、僅顯示摘要頁面、忽略間隙等等。從 文檔 中了解這些功能。

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

也可以看看