作为 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

在开始执行步骤和可用代码示例之前,请从 仪表板 获取您的客户端 ID 和客户端密码。在代码中添加您的 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 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看