什么是 Excel 电子表格比较?

Excel 电子表格比较在单元格级别识别并突出显示两个 Excel 工作簿之间的差异。与将电子表格视为二进制文件的基于文本的 diff 工具不同,GroupDocs.Comparison 能够理解 Excel 格式结构并检测到:

  • 单元格插入:新添加的单元格或行
  • 单元格删除:被移除的单元格或行
  • 单元格修改:值、公式或格式的更改
  • 结构变化:工作表、列或行的添加或删除
  • 格式差异:样式、颜色、字体和对齐方式的变化

GroupDocs.Comparison 提供了一个高级的 .NET API,自动检测这些差异并在新工作簿中以可自定义的视觉指示器呈现。

Excel 比较的常见用例

GroupDocs.Comparison 处理各种 Excel 比较场景:

  • 财务审计:比较预算版本、财务报告和会计电子表格
  • 数据验证:在迁移或系统更新期间验证数据准确性
  • 版本控制:跟踪多个电子表格版本之间的更改
  • 合规报告:审计变更以满足监管要求
  • 协作编辑:审查多位团队成员所做的更改
  • 报告生成:为利益相关者创建变更摘要
  • CI/CD 流水线:在基于 Excel 的工作流中实现自动变更检测

所有这些场景都受益于 GroupDocs.Comparison 的单元格级检测和可自定义的输出格式。

GroupDocs.Comparison Excel 比较功能

GroupDocs.Comparison for .NET 提供了全面的 Excel 电子表格比较功能:

Note: 完整的工作项目及所有代码示例均可在 GitHub 仓库 中获取。您可以克隆、运行并根据需要自定义示例。

单元格逐个分析

GroupDocs.Comparison 执行细粒度的单元格级比较,精准检测插入、删除和修改。API 能够理解 Excel 的结构,包括公式、格式和元数据。

自定义样式选项

GroupDocs.Comparison 的 StyleSettings 类允许您自定义不同变更类型的视觉外观:

  • InsertedItemStyle:自定义新添加单元格的外观
  • DeletedItemStyle:为被删除的单元格设置样式
  • ChangedItemStyle:格式化已修改的单元格
  • 字体颜色、粗体、斜体、下划线:完整的格式控制

摘要页生成

GroupDocs.Comparison 可以自动生成摘要页,列出所有检测到的更改,提供无需逐个单元格检查的快速概览。

可见性控制

GroupDocs.Comparison 提供细粒度的控制,决定比较结果中显示哪些内容:

  • ShowInsertedContent:显示或隐藏插入的单元格
  • ShowDeletedContent:显示或隐藏删除的单元格
  • LeaveGaps:通过为删除的内容保留空白来保持文档结构

多格式支持

GroupDocs.Comparison 支持 Excel 格式(XLSX、XLS),以及 Word、PDF、PowerPoint、图像等更多格式。API 会自动处理特定格式的优化。

源文件和目标文件

以下图片展示了源 Excel 文件和目标 Excel 文件。乍一看它们似乎相同,但 GroupDocs.Comparison 将在单元格级别检测出细微差异。

Source Excel File

原始数据的源 Excel 电子表格。

Target Excel File

包含需要识别的修改的目标 Excel 电子表格。

代码示例:使用 GroupDocs.Comparison 进行 Excel 比较

本示例演示了 GroupDocs.Comparison 的 Excel 比较功能:

步骤 1:基本 Excel 比较

首先,使用默认设置执行基本比较:

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

private static void BasicComparison(string sourcePath, string targetPath, string resultPath)
{
    EnsureFileExists(sourcePath, "source Excel file");
    EnsureFileExists(targetPath, "target Excel file");

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath);
    }

    Console.WriteLine("Basic comparison completed.");
}

此代码使用 GroupDocs.Comparison 的 Comparer 类比较两个 Excel 文件,使用默认样式自动突出显示所有差异。

Basic Comparison Result

基本比较结果显示了所有检测到的差异,使用默认格式。插入的单元格以一种颜色突出显示,删除的单元格以另一种颜色,修改的单元格以第三种颜色。

基本比较提供了所有更改的全面视图,非常适合初步分析和快速变更检测。

步骤 2:使用自定义格式的样式比较

接下来,应用自定义样式并生成摘要页:

private static void StyledComparison(string sourcePath, string targetPath, string resultPath)
{
    EnsureFileExists(sourcePath, "source Excel file");
    EnsureFileExists(targetPath, "target Excel file");

    var compareOptions = new CompareOptions
    {
        InsertedItemStyle = new StyleSettings()
        {
            FontColor = System.Drawing.Color.Green,
            IsUnderline = true,
            IsBold = true,
            IsItalic = true
        },
        DeletedItemStyle = new StyleSettings()
        {
            FontColor = System.Drawing.Color.Brown,
            IsUnderline = true,
            IsBold = true,
            IsItalic = true
        },
        ChangedItemStyle = new StyleSettings()
        {
            FontColor = System.Drawing.Color.Firebrick,
            IsUnderline = true,
            IsBold = true,
            IsItalic = true
        },
        GenerateSummaryPage = true,
        ShowDeletedContent = false,
    };

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath, compareOptions);
    }

    Console.WriteLine("Styled comparison completed (changes highlighted, summary page generated).");
}

此示例演示了 GroupDocs.Comparison 的 CompareOptionsStyleSettings 类的自定义格式。插入的单元格显示为绿色,删除的单元格显示为棕色,修改的单元格显示为砖红色,且全部采用粗体、斜体和下划线。

步骤 3:可见性控制

GroupDocs.Comparison 提供可见性控制,以便进行聚焦分析:

// 隐藏插入内容 - 关注删除和修改
private static void HideInsertedContentComparison(string sourcePath, string targetPath, string resultPath)
{
    var compareOptions = new CompareOptions
    {
        ShowInsertedContent = false
    };

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath, compareOptions);
    }
}

// 隐藏删除内容 - 关注新增和修改
private static void HideDeletedContentComparison(string sourcePath, string targetPath, string resultPath)
{
    var compareOptions = new CompareOptions
    {
        ShowDeletedContent = false
    };

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath, compareOptions);
    }
}

// 为删除内容保留空白 - 保持文档结构
private static void LeaveGapsComparison(string sourcePath, string targetPath, string resultPath)
{
    var compareOptions = new CompareOptions
    {
        LeaveGaps = true
    };

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath, compareOptions);
    }
}

// 同时隐藏插入和删除内容 - 仅显示修改
private static void HideBothContentComparison(string sourcePath, string targetPath, string resultPath)
{
    var compareOptions = new CompareOptions
    {
        ShowInsertedContent = false,
        ShowDeletedContent = false,
        LeaveGaps = true
    };

    using (var comparer = new Comparer(sourcePath))
    {
        comparer.Add(targetPath);
        comparer.Compare(resultPath, compareOptions);
    }
}

这些示例展示了 GroupDocs.Comparison 灵活的可见性控制,您可以根据分析需求自定义比较输出。

比较结果:隐藏内容

GroupDocs.Comparison 可以隐藏特定的变更类型,以便聚焦分析。以下分别展示了隐藏插入内容和隐藏删除内容的结果。

Hide Inserted Content Result

隐藏插入内容的比较结果,重点关注删除和修改。

Hide Deleted Content Result

隐藏删除内容的比较结果,重点关注插入和修改。

比较结果:保留空白

当保持文档结构很重要时,GroupDocs.Comparison 可以在删除的内容位置保留空白。

Leave Gaps Result

为删除的内容保留空白的比较结果,保持原始文档结构和布局。

比较结果:样式化比较

最后,使用自定义格式和摘要页的样式化比较提供了全面的变更跟踪。

Styled Comparison Result

使用自定义格式的样式化比较结果:绿色表示插入,棕色表示删除,砖红色表示修改,并提供摘要页以快速审阅。

为什么 GroupDocs.Comparison 优于手动和基础方法

手动比较的局限性

手动审查 Excel 无法扩展。对两个大型电子表格进行人工比较需要数小时且易出错。GroupDocs.Comparison 自动化此过程,几秒钟内完成比较,准确率达 100%。

Excel 内置功能的局限性

Excel 的 “Track Changes” 功能存在显著限制:

  • 需要共享工作簿:普通工作簿无法使用
  • 无自动化:必须手动激活并审查
  • 格式化受限:仅提供基本的变更指示器
  • 无法编程访问:不能集成到自动化工作流中
  • 版本冲突:在多个版本之间管理困难

GroupDocs.Comparison 通过可编程 API 解决了这些限制,适用于任何 Excel 文件并可无缝集成到自动化工作流中。

文本 Diff 工具的失败

标准文本 diff 工具在处理 Excel 文件时会失效,因为它们:

  • 将文件视为二进制:不理解 Excel 结构
  • 无法处理格式:忽略单元格样式、颜色和格式
  • 忽略公式:不理解 Excel 公式和计算
  • 缺乏结构感知:无法检测工作表、行或列的变化
  • 忽视元数据:忽略 Excel 的元数据和属性

GroupDocs.Comparison 了解 Excel 的格式,并在多个层面检测变化:单元格值、公式、格式、结构和元数据。

GroupDocs.Comparison 的优势

GroupDocs.Comparison 提供了全面的 Excel 比较能力:

  • 格式感知比较:理解 Excel 结构和语义
  • 单元格级精度:在单个单元格层面检测变化
  • 自定义样式:对变更的视觉外观拥有完整控制
  • 摘要页:自动生成变更摘要
  • 可见性控制:显示或隐藏特定变更类型
  • 可编程 API:可集成到自动化工作流中
  • 多格式支持:可同时比较 Word、PDF、PowerPoint 等

实际 Excel 比较场景

财务审计工作流

GroupDocs.Comparison 可实现自动化财务审计:

// 使用自定义样式比较预算版本
var auditOptions = new CompareOptions
{
    InsertedItemStyle = new StyleSettings()
    {
        FontColor = System.Drawing.Color.Red,  // 突出显示新费用
        IsBold = true
    },
    ChangedItemStyle = new StyleSettings()
    {
        FontColor = System.Drawing.Color.Orange,  // 突出显示修改
        IsBold = true
    },
    GenerateSummaryPage = true
};

using (var comparer = new Comparer("budget_v1.xlsx"))
{
    comparer.Add("budget_v2.xlsx");
    comparer.Compare("audit_report.xlsx", auditOptions);
}

此工作流自动生成审计报告,突出显示预算变更,使财务审查高效且准确。

数据迁移验证

GroupDocs.Comparison 在迁移期间验证数据准确性:

// 比较源数据和迁移后数据
var validationOptions = new CompareOptions
{
    ShowInsertedContent = false,  // 关注缺失的数据
    ShowDeletedContent = false,   // 关注多余的数据
    LeaveGaps = true              // 保持结构
};

using (var comparer = new Comparer("source_data.xlsx"))
{
    comparer.Add("migrated_data.xlsx");
    comparer.Compare("validation_report.xlsx", validationOptions);
}

此方法通过识别源数据与迁移后数据之间的差异,确保数据完整性。

协作编辑审查

GroupDocs.Comparison 跟踪协作环境中的更改:

// 审查多位贡献者的更改
var reviewOptions = new CompareOptions
{
    InsertedItemStyle = new StyleSettings()
    {
        FontColor = System.Drawing.Color.Green,
        IsBold = true
    },
    DeletedItemStyle = new StyleSettings()
    {
        FontColor = System.Drawing.Color.Red,
        IsStrikethrough = true
    },
    ChangedItemStyle = new StyleSettings()
    {
        FontColor = System.Drawing.Color.Blue,
        IsUnderline = true
    },
    GenerateSummaryPage = true
};

using (var comparer = new Comparer("original.xlsx"))
{
    comparer.Add("collaborative_version.xlsx");
    comparer.Compare("review_report.xlsx", reviewOptions);
}

此工作流提供所有更改的清晰视觉指示,使协作审查更加高效。

高级 GroupDocs.Comparison 功能

许可证管理

GroupDocs.Comparison 在生产环境中需要许可证:

private static void ApplyLicense()
{
    string licensePath = "path to your license file";
    License license = new License();
    license.SetLicense(licensePath);
}

在执行比较之前应用许可证,以启用全部功能。未提供许可证时,GroupDocs.Comparison 以评估模式运行,功能受限。

错误处理

GroupDocs.Comparison 提供了稳健的错误处理机制:

private static void EnsureFileExists(string path, string description)
{
    if (!File.Exists(path))
    {
        throw new FileNotFoundException($"The {description} was not found. Path: {path}", path);
    }
}

在比较操作前验证文件是否存在,可防止运行时错误并提供明确的错误信息。

批量处理

GroupDocs.Comparison 支持对多个 Excel 文件进行批量处理:

var excelFiles = Directory.GetFiles("source", "*.xlsx");
var targetFiles = Directory.GetFiles("target", "*.xlsx");

foreach (var sourceFile in excelFiles)
{
    var fileName = Path.GetFileName(sourceFile);
    var targetFile = Path.Combine("target", fileName);
    
    if (File.Exists(targetFile))
    {
        using (var comparer = new Comparer(sourceFile))
        {
            comparer.Add(targetFile);
            comparer.Compare(Path.Combine("output", $"comparison_{fileName}"));
        }
    }
}

此方法实现了对整个目录中 Excel 文件的自动化批量比较。

何时使用 GroupDocs.Comparison

GroupDocs.Comparison 适用于:

  • 企业应用:文档管理和版本控制系统
  • 金融系统:预算跟踪、审计和报告
  • 数据迁移工具:验证和核查工作流
  • 协作平台:变更跟踪和审查系统
  • CI/CD 流水线:自动文档变更检测
  • 合规系统:监管审计和报告
  • 报告工具:自动生成变更摘要

Excel 比较的最佳实践

1. 选择合适的可见性设置

根据分析需求选择可见性控制:

  • 完整比较:显示所有更改,进行全面审查
  • 聚焦分析:隐藏特定变更类型,专注于相关修改
  • 结构保留:使用 LeaveGaps 保持文档布局

2. 为清晰度自定义样式

为不同变更类型使用明显的颜色和格式:

  • 插入:绿色或蓝色表示新内容
  • 删除:红色或棕色表示已移除内容
  • 修改:橙色或黄色表示已更改内容

3. 生成摘要页

启用摘要页以快速概览所有变更:

compareOptions.GenerateSummaryPage = true;

摘要页提供了无需检查单个单元格的高层次变更视图。

4. 验证输入文件

始终在比较前验证文件是否存在:

EnsureFileExists(sourcePath, "source Excel file");
EnsureFileExists(targetPath, "target Excel file");

这可防止运行时错误并提供明确的错误信息。

5. 高效处理大文件

对于大型 Excel 文件,考虑:

  • 批量处理
  • 使用适当的可见性设置以减小输出体积
  • 如非必要,禁用摘要页以提升性能

结论

GroupDocs.Comparison for .NET 为 Excel 电子表格比较提供了强大的功能,具备高级的单元格逐个分析能力。该 API 支持自定义样式、摘要页以及灵活的可见性控制,使其在财务审计、数据验证、版本控制和协作工作流中表现出色。

GroupDocs.Comparison 的关键优势:

  • 单元格级精度:在单个单元格层面检测变化
  • 自定义样式:对变更的视觉外观拥有完整控制
  • 摘要页:自动生成变更摘要
  • 可见性控制:显示或隐藏特定变更类型
  • 可编程 API:可集成到自动化工作流中
  • 多格式支持:可同时比较 Excel、Word、PDF、PowerPoint 等
  • 生产就绪:稳健的错误处理和文件验证

使用 GroupDocs.Comparison,您可以将 Excel 比较从手动检查转变为自动化、可扩展的过程,为企业工作流提供准确、视觉清晰的变更跟踪。

另请参阅

下载免费试用

您可以从 releases 页面 下载 GroupDocs.Comparison 的免费试用版。此外,若想在无任何限制的情况下测试库,请考虑在 GroupDocs 临时许可证 获取临时许可证。

使用 GroupDocs.Comparison for .NET,将高级 Excel 比较功能集成到您的应用程序中从未如此简单。立即开始提升您的文档处理工作流吧!