Excel 是最常用的数据分析、报告和财务管理应用程序之一。通常,您需要比较两个或多个 Excel 工作簿,以识别更改、验证更新或跟踪修订。手动执行此操作可能会耗时且容易出错。幸运的是,使用 GroupDocs.Comparison for .NET Cloud SDK,您可以以编程方式在 C# 中比较 Excel 工作簿,并生成一个突出显示所有差异的新文件。
在本教程中,您将学习如何:
如何设置 Excel 比较 API
要比较 Excel XLSX files,我们将使用 GroupDocs.Comparison Cloud SDK for .NEt。它允许您比较电子表格,跟踪更改,并将结果保存在一个 Excel 工作簿中。
通过 NuGet 安装 SDK:
Install-Package GroupDocs.Comparison-Cloud
在运行以下代码片段之前,请从 cloud dashboard 获取您的客户端 ID 和客户端密钥。
使用 C# 比较两个 Excel 文件
您可以通过以下步骤在 C# 中比较两个 Excel 文件:
- 上传源和目标 Excel 工作簿。
- 使用 GroupDocs.Comparison API 运行比较。
- 下载突出更改的结果文件。
上传 Excel 工作簿
为了执行比较操作,首先,我们需要使用以下代码示例将源和目标 XLSX 文件上传到云存储:
var fileApi = new FileApi(configuration);
using (var source = File.OpenRead("source.xlsx"))
{
fileApi.UploadFile(new UploadFileRequest("source.xlsx", source));
}
using (var target = File.OpenRead("target.xlsx"))
{
fileApi.UploadFile(new UploadFileRequest("target.xlsx", target));
}
比较 Excel 工作簿
现在使用以下代码片段比较两个 Excel 工作簿。执行后,API 会生成一个新的 Excel 工作簿,其中包含两个电子表格之间的高亮更改。
var options = new ComparisonOptions
{
SourceFile = new FileInfo { FilePath = "source.xlsx" },
TargetFiles = new List<FileInfo> { new FileInfo { FilePath = "target.xlsx" } },
OutputPath = "result/comparison-result.xlsx"
};
var request = new ComparisonsRequest(options);
var response = compareApi.Comparisons(request);
在 C# 中比较多个 Excel 工作簿
REST API 还提供比较多个 Excel 工作簿的功能。请按照以下指定的步骤操作。
- 首先,创建一个 CompareApi 的实例。
- 其次,将输入的 Excel 工作簿上传到云存储中。
- 现在,初始化 ComparisonOptions 对象,在此我们定义输入和结果 Excel 工作簿。
- 然后,创建一个 ComparisonsRequest 对象,我们将 ComparisonOptions 对象作为参数传递。
- 最后,使用 Comparisons() API 调用比较 Excel 工作簿。
var options = new ComparisonOptions
{
SourceFile = new FileInfo { FilePath = "source.xlsx" },
TargetFiles = new List<FileInfo>
{
new FileInfo { FilePath = "target1.xlsx" },
new FileInfo { FilePath = "target2.xlsx" }
},
OutputPath = "result/multiple-comparison.xlsx"
};
var request = new ComparisonsRequest(options);
var response = compareApi.Comparisons(request);

源文件和目标 Excel 文件。
以下是比较完成后生成的结果工作簿的预览。

使用 REST API 的 Excel 比较预览。
获取 C# 中的更改列表
REST API 还提供了获取所有变化的列表以及比较在比较过程中发现的 Excel 工作表中的数据的功能。
- 首先,创建一个 CompareApi 的实例。
- 接下来,设置输入源 XLSX 文件路径。
- 然后,设置目标 XLSX 文件路径。
- 接下来,初始化 ComparisonOptions 对象。
- 然后,分配源/目标文件并设置输出文件路径。
- 之后,创建 PostChangesRequest,使用 ComparisonOptions 对象作为参数。
- 最后,通过调用 postChanges() 方法来获取结果。
var options = new ComparisonOptions
{
SourceFile = new FileInfo { FilePath = "source.xlsx" },
TargetFiles = new List<FileInfo> { new FileInfo { FilePath = "target.xlsx" } },
OutputPath = "result/changes-summary.xlsx"
};
var request = new PostChangesRequest(options);
var changes = compareApi.PostChanges(request);
foreach (var change in changes)
{
Console.WriteLine($"{change.Type}: {change.Text}");
}
尝试在线
如果您想直接在网页浏览器中尝试 API 的功能,而无需写任何代码,您可以考虑使用我们的免费 Online XLSX comparison tool。这个 Excel 比较工具在线比较 2 个 Excel 工作表并返回结果。

结论
在本文中,我们演示了如何在 C# .NET 中比较 Excel 工作簿,编程突出电子表格之间的差异,一次比较多个 Excel 文件,以及如何提取 Excel 文件中详细的变更列表。使用 GroupDocs.Comparison Cloud SDK for .NET,您可以自动化 Excel 文件比较,以提高准确性、节省时间并简化数据验证工作流程。