作為 Python 開發人員,您可能需要以編程方式編輯 Word 或 Excel 文檔。您無需安裝任何外部應用程序即可更新此類文檔。本文將重點介紹如何使用 REST API 編輯 Word 或 Excel 文檔。

本文應涵蓋以下主題:

文檔編輯器 REST API 和 Python SDK

GroupDocs.Editor Cloud 產品系列

為了編輯 Word 文檔或 Excel 工作表,我將使用 GroupDocs.Editor Cloud 的 Python SDK API。它允許您以編程方式編輯字處理文檔、Excel 工作表或其他支持格式的文檔。它還為雲 API 提供 .NET、Java、PHP、Ruby、Android 和 Node.js SDK 作為其文檔編輯器家族成員

您可以在控制台中使用以下命令將 GroupDocs.Editor-Cloud 安裝到您的 Python 項目:

pip install groupdocs_editor_cloud

在開始執行步驟和可用代碼示例之前,請從 dashboard 獲取您的 Client ID 和 Client Secret。在代碼中添加您的 ID 和密碼,如下所示:

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

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

使用 REST API 編輯 Word 文檔

您可以按照以下簡單步驟編輯 Word 文檔:

上傳文件

首先,使用下面給出的代碼示例將 Word 文檔上傳到雲端:

storage_api = groupdocs_editor_cloud.StorageApi.from_config(config_info)
file_api = groupdocs_editor_cloud.FileApi.from_config(config_info)

# 上傳示例文件
files = glob.glob("C:\\Files\\sample_word_document.docx", recursive=False)
destination_file = files[0].replace("C:\\Files\\", "", 1)
file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(destination_file, files[0]))

結果,Word 文件將上傳到 Cloud Storage,並將在儀表板的 文件部分 中可用。

在 Python 中編輯 Word 文檔

請按照下面提到的步驟以編程方式編輯 Word 文檔。

  • 創建 File APIEdit API 實例
  • 提供 WordProcessingLoadOptions
  • 使用 Edit API 的 Load 方法加載文件
  • 使用 File API 的 Download File 方法下載 HTML 文檔
  • 編輯 HTML 文檔
  • 使用 File API 的 Upload File 方法上傳 HTML
  • 提供 WordProcessingSaveOptions 以保存在 DOCX 中
  • 使用 Edit API 的 Save 方法將 HTML 保存回 DOCX

以下代碼片段顯示瞭如何使用 REST API 更新 Word 文檔。

# 創建必要的 API 實例
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# 文檔已上傳到存儲中。
# 載入可編輯狀態
file_info = groupdocs_editor_cloud.FileInfo("sample_word_document.docx", None, None, None)
load_options = groupdocs_editor_cloud.WordProcessingLoadOptions()
load_options.file_info = file_info
load_options.output_path = "output"
load_result = edit_api.load(groupdocs_editor_cloud.LoadRequest(load_options))

# 下載 html 文件
html_file = file_api.download_file(groupdocs_editor_cloud.DownloadFileRequest(load_result.html_path))
html = ""
with open(html_file, 'r') as file:
    html = file.read()

# 編輯一些東西...
html = html.replace("Sample test text", "Hello world")

# 將 html 上傳回存儲
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# 將 html 保存回 docx
save_options = groupdocs_editor_cloud.WordProcessingSaveOptions()
save_options.file_info = file_info
save_options.output_path = "output/edited.docx"
save_options.html_path = load_result.html_path
save_options.resources_path = load_result.resources_path
save_result = edit_api.save(groupdocs_editor_cloud.SaveRequest(save_options))

# 完畢
print("Document edited: " + save_result.path)

下載更新文件

上面的代碼示例將編輯後的 Word 文件保存在雲端。您可以使用以下代碼示例下載它:

request = groupdocs_editor_cloud.DownloadFileRequest("output\\edited.docx", my_storage)
response = file_api.download_file(request)

# 將下載的文件移動到您的工作目錄
shutil.move(response, "C:\\Files\\")

使用 REST API 編輯 Excel 工作表

請按照以下步驟以編程方式編輯 Excel 工作表。

  • 創建 File APIEdit API 實例
  • 提供電子表格加載選項
  • 使用 Edit API 的 Load 方法加載文件
  • 使用 File API 的 Download File 方法下載 HTML 文檔
  • 編輯 HTML 文檔
  • 使用 File API 的 Upload File 方法上傳 HTML
  • 提供 SpreadsheetSaveOptions 以保存在 XLSX 中
  • 使用 Edit API 的 Save 方法將 HTML 保存回 XLSX

下面給出的簡單代碼示例演示瞭如何使用 REST API 更新 Excel 工作表。請按照前面提到的步驟上傳和下載文件。

# 創建必要的 API 實例
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configurations)

# 文檔已上傳到存儲中。
# 載入可編輯狀態
file_info = groupdocs_editor_cloud.FileInfo("sample_four_sheets.xlsx")
load_options = groupdocs_editor_cloud.SpreadsheetLoadOptions()
load_options.file_info = file_info
load_options.output_path = "output"
load_options.worksheet_index = 0
load_result = edit_api.load(groupdocs_editor_cloud.LoadRequest(load_options))

# 下載 html 文件
html_file = file_api.download_file(groupdocs_editor_cloud.DownloadFileRequest(load_result.html_path))
html = ""
with open(html_file, 'r') as file:
    html = file.read()

# 編輯一些東西...
html = html.replace("This is sample sheet", "This is sample sheep")

# 將 html 上傳回存儲
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# 將 html 保存回 xlsx
save_options = groupdocs_editor_cloud.SpreadsheetSaveOptions()
save_options.file_info = file_info
save_options.output_path = "output/edited.xlsx"
save_options.html_path = load_result.html_path
save_options.resources_path = load_result.resources_path
save_result = edit_api.save(groupdocs_editor_cloud.SaveRequest(save_options))

# 完畢
print("Excel sheet edited: " + save_result.path)

結論

在本文中,您學習瞭如何使用 Python 使用文檔編輯器 REST API 在雲端編輯 Word 文檔或 Excel 工作表。您還學習瞭如何以編程方式將文件上傳到雲端,然後從雲端下載更新後的文件。您可以使用 文檔 了解有關 GroupDocs.Editor Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看