我們很高興宣布 GroupDocs.Comparison for .NET 26.5 已於 2026 年 5 月 正式發佈。
GroupDocs.Comparison 版本 26.5 帶來 PDF 渲染精度的提升、CSV 與試算表比較可讀性的增強、用於修訂處理與試算表變更中繼資料的新 API 功能,以及支援多框架的更新版 NuGet 打包模型。

修復與增強

  • [Feature] 多框架 NuGet 打包與 TFM 分割套件。 (COMPARISONNET-4770)
  • [Enhancement] PDF 比較:在 Inline 模式下提升段落渲染精度。 (COMPARISONNET-4751)
  • [Enhancement] 改善含表格的 PDF 文件比較結果。 (COMPARISONNET-4763)
  • [Bug] 修復比較帶樣式表格的 PDF 時拋出 ArgumentOutOfRangeException。 (COMPARISONNET-4762)
  • [Feature] 在 RevisionHandler 中支援可選的傳入串流釋放。 (COMPARISONNET-4773)
  • [Enhancement] 使用文字標記提升 CSV 比較結果的可讀性。 (COMPARISONNET-4769)
  • [Feature] 為 ChangeInfo 擴充試算表屬性。 (COMPARISONNET-4767)
  • [Bug] Compare 方法在產生 HTML 輸出時拋出例外。 (COMPARISONNET-4764)

主要功能

多框架 NuGet 打包與 TFM 分割套件

GroupDocs.Comparison 已轉換為更先進的 NuGet 套件交付模型。主套件現在目標為 net462;net6.0;net8.0;net10.0,取代先前的 net462;netstandard2.1 目標。

此外,為了減少下載大小,現在會同時發布針對各框架的專屬 NuGet 套件。安裝平台特定套件時,僅會下載與使用者目標框架相符的二進位檔——不會包含未使用的平台組件。

套件 目標框架
GroupDocs.Comparison net462;net6.0;net8.0;net10.0(所有框架)
GroupDocs.Comparison.net462 .NET Framework 4.6.2
GroupDocs.Comparison.net6 .NET 6.0
GroupDocs.Comparison.net8 .NET 8.0
GroupDocs.Comparison.net10 .NET 10.0

注意: .NET Standard 2.1 不再作為獨立目標支援。先前依賴 netstandard2.1 的專案應遷移至上述支援的任一 TFM。

支援在 RevisionHandler 中可選的傳入串流釋放

RevisionHandler 現在接受 leaveOpen 參數,以控制在處理器釋放時是否同時釋放底層串流。將 leaveOpen 設為 true 時,RevisionHandler 釋放後串流仍保持開啟,允許呼叫端繼續使用。此功能在串流生命週期由外部管理的情境中特別有用。

using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);

using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
    List<RevisionInfo> revisionList = revisionHandler.GetRevisions();

    foreach (var rev in revisionList)
    {
        if (rev.Type == RevisionType.Deletion)
            rev.Action = RevisionAction.Accept;
    }

    ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
    revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}

為 ChangeInfo 擴充試算表屬性

ChangeInfo 新增了三個屬性,以在每個偵測到的變更中提供試算表特有的中繼資料。這些屬性在比較 Excel(.xlsx)和 CSV(.csv)檔案時會被填充,讓您能精確定位變更所在的試算表格子:

  • Row – 變更格子的零基行索引。
  • Column – 變更格子的零基列索引。
  • ColumnHeader – 包含變更格子的列標題文字(若可用)。

以下範例示範如何比較兩個 CSV 檔案,並將變更清單(包括新加入的試算表屬性)序列化為 JSON:

string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";

using (var comparer = new Comparer(source))
{
    comparer.Add(target);
    var doc = comparer.Compare();
    var changes = doc.Changes;

    var json = changes.Select(c => new
    {
        id = c.Id,
        type = c.Type.ToString(),
        componentType = c.ComponentType,
        row = c.Row,
        column = c.Column,
        columnHeader = c.ColumnHeader,
        sourceText = c.SourceText,
        targetText = c.TargetText,
        text = c.Text
    });

    File.WriteAllText(outFilePathJson,
        JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}

增強功能

使用文字標記提升 CSV 比較結果的可讀性

CSV 比較輸出現在使用內嵌文字標記,使插入與刪除的內容立即可見,無需並排檢視:

  • 插入 的文字會以括號包住,例如 (new value)
  • 刪除 的文字會以方括號包住,例如 [old value]

如何取得更新

您可以從 NuGet 取得最新版本,或直接從 GroupDocs 官方網站 下載。

NuGet

GroupDocs.Comparison for .NET 26.5

直接下載

GroupDocs.Comparison for .NET 26.5 頁面下載適用於 .NET 與 .NET Framework 的組件。

了解更多