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 文件:
- 上傳 XLSX 文件到雲端。
- 比較上傳的 Excel 文件。
- 下載 生成的文件。
上傳 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 文件。
# 創建 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 電子表格有任何疑問,請隨時在 論壇 上與我們聯繫。