我们很高兴宣布 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 包也会与主包一起发布。安装平台特定的包时,仅会下载与用户目标框架匹配的二进制文件——不会包含未使用的平台程序集。

Package Target framework
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](https://releases.groupdocs.com/com