在 Python 中使用 REST API 比较 Excel 文件。

在 Python 中使用 REST API 比较 Excel 文件中的数据

Excel 是最流行和使用最广泛的电子表格应用程序之一。它允许以表格形式组织、分析、计算和存储数据。比较两个不同 Excel 文件或同一文件的多个版本的 xlsx 文件数据是一种非常常见的需求。我们可以轻松地比较两个电子表格或多个 Excel 文件以跟踪更改并突出显示新文件中的差异。在本文中,我们将学习如何在 Python 中使用 REST API 比较 Excel 文件。

为了比较本文中的电子表格,应涵盖以下主题:

用于比较 Excel 文件的 REST API 和 Python SDK

为了比较两个或多个 XLSX 文件,我们将使用 GroupDocs.Comparison Cloud 的 Python SDK API。它允许比较 支持的格式 的两个或多个文档,并突出显示结果文件中的差异。请在控制台中使用以下命令安装它:

pip install groupdocs-comparison-cloud

在执行上述步骤之前,请从仪表板获取您的客户端 ID 和密码。获得 ID 和密码后,添加如下所示的代码:

# 此代码示例演示如何在代码中添加您的客户端 ID 和密码。
client_id = '659fe7da-715b-4744-a0f7-cf469a392b73';
client_secret = 'b377c36cfa28fa69960ebac6b6e36421';

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

使用 Python 比较两个 Excel 文件

我们可以按照下面给出的简单步骤,在云端用 python 比较两个 Excel 文件:

  1. 上传 XLSX 文件到云端。
  2. 比较上传的 Excel 文件。
  3. 下载 生成的文件。

上传 Excel 文件

首先,我们将使用以下代码示例将源 XLSX 文件和目标 XLSX 文件上传到云端:

# 此代码示例演示如何将多个 Excel 文件上传到云端。
# 创建 API 实例
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# 上传示例文件
for filename in glob.iglob("C:\\Files\\comparison\\upload\\*.xlsx", recursive=True):
    destFile = filename.replace("C:\\Files\\comparison\\upload\\", "",1)           
    file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
    print("Uploaded file: "+ destFile)

因此,上传的 Excel 文件将在云端仪表盘的 文件部分 中可用。

在 Python 中比较 Excel 文件的差异

现在,我们将按照以下步骤以编程方式比较上传的 Excel 文件:

  • 首先,创建 CompareApi 的实例。
  • 接下来,设置上传的源和目标 XLSX 输入文件路径。
  • 然后,初始化 ComparisonOptions 对象并分配源文件和目标文件。
  • 接下来,设置输出文件路径。
  • 之后,创建带有 ComparisonOptions 作为参数的 ComparisonsRequest。
  • 最后使用comparisons()方法比较excel文档,得到结果。

以下代码示例展示了如何在 Python 中使用 REST API 在线比较 Excel 工作表。

# 此代码示例演示如何比较两个 Excel 文件。
# 创建必要的 API 实例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 输入源文件
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# 输入目标文件
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.xlsx"

# 定义比较选项
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.xlsx"

# 创建比较请求
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比较
response = api_instance.comparisons(request)
如何比较excel中的数据和比较多个excel文件

源和目标 Excel 文件。

在 Python 中使用 REST API 比较 2 个 Excel 文件。

Excel 使用 REST API 在 Python 中比较两个工作表。

下载结果文件

因此,上述代码示例将在云端保存一个新创建的带有电子表格比较的 Excel 文件。可以使用以下代码示例下载它:

# 此代码示例演示如何从云端下载 Excel 文件。
# 创建 API 实例
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# 下载文件请求
request = groupdocs_comparison_cloud.DownloadFileRequest("result.xlsx", "")

# 下载文件
response = file_api.download_file(request)

# 将下载的文件移动到您的工作目录
shutil.move(response, "C:\\Files\\comparison\\")  

在 Python 中比较多个 Excel 文件

我们还可以按照以下步骤比较 Excel 工作表的差异:

  • 首先,创建 CompareApi 的实例。
  • 接下来,设置输入源 XLSX 文件路径。
  • 然后,设置多个目标 XLSX 文件路径。
  • 接下来,初始化 ComparisonOptions 对象并分配源文件和目标文件。
  • 然后,设置输出文件路径。
  • 之后,创建带有 ComparisonOptions 作为参数的 ComparisonsRequest。
  • 最后,excel表格在线比较,使用comparisons()方法得到结果。

以下代码示例展示了如何在 Python 中使用 REST API 比较多个 Excel 文件。

# 此代码示例演示如何比较多个 Excel 文件。
# 创建必要的 API 实例
api_instance = groupdocs_comparison_cloud.比较Api.from_keys(client_id, client_secret)

# 输入源文件
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# 输入目标 1 文件
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.xlsx"

# 输入目标 2 文件
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.xlsx"

# 定义比较选项
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result_multiple.xlsx"

# 比较请求
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比较
response = api_instance.comparisons(request)

获取 Python 中的更改列表

按照以下步骤,我们可以获得所有更改的列表,并比较在比较 Excel 文件时发现的 Excel 工作表中的数据:

  • 首先,创建 CompareApi 的实例。
  • 接下来,设置输入源 XLSX 文件路径。
  • 然后,设置目标 XLSX 文件路径。
  • 接下来,初始化 ComparisonOptions 对象。
  • 然后,分配源/目标文件并设置输出文件路径。
  • 之后,使用 ComparisonOptions 对象作为参数创建 PostChangesRequest。
  • 最后调用postChanges()方法获取结果。

以下代码示例显示了如何在 Python 中使用 REST API 比较两个 Excel 工作表中的数据以进行匹配。

# 此代码示例演示如何获取比较期间发现的更改列表。
# 创建必要的 API 实例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 输入源文件
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# 输入目标文件
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.xlsx"

# 定义比较选项
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]

# 创建发布更改请求
request = groupdocs_comparison_cloud.PostChangesRequest(options)

# 发布更改
response = api_instance.post_changes(request)

# 展示
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));

在线试用

如何比较两个excel表中的数据?请尝试使用以下免费在线 XLSX 比较工具 来比较两个 Excel 工作表以匹配数据。这个 excel 比较工具在线比较 2 个 excel 表,是使用上述 API 开发的。

结论

在本文中,我们学习了如何:

  • 比较两个 Excel 工作表并突出显示 Python 中的差异;
  • 获取插入和删除项目的列表;
  • 以编程方式将多个 XLSX 文件上传到云端;
  • 从云端下载 XLSX 文件。

此外,您可以使用 文档 了解有关 GroupDocs.Comparison Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如果对如何比较 Excel 电子表格有任何疑问,请随时在 论坛 上与我们联系。

也可以看看