在 Python 中使用 REST API 编辑 Word 文档

在某些情况下,我们可能需要以编程方式编辑 Word 文档。我们可以轻松地添加、编辑或删除 DOC 或 DOCX 文件的内容,或者使用 Python 应用文本格式。在本文中,我们将学习如何在 Python 中使用 REST API 编辑 Word 文档。

本文应涵盖以下主题:

Word 文档编辑器 REST API 和 Python SDK

为了编辑 DOCX 文件,我们将使用 GroupDocs.Editor Cloud 的 Python SDK API。请在控制台中使用以下命令安装它:

pip install groupdocs_editor_cloud

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

client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

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

在 Python 中使用 REST API 编辑 Word 文档

我们可以按照下面提到的简单步骤来编辑Word文档:

  1. 上传DOCX文件到云端
  2. 编辑 使用 Python 的 Word 文档
  3. 下载更新文件

上传文件

首先,我们将使用下面给出的代码示例将 DOCX 文件上传到云端:

# 创建 API 实例
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# 上传示例文件
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)

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

使用 Python 编辑 Word 文档

我们可以按照以下步骤以编程方式编辑 Word 文档:

  • 首先,创建 FileApiEditApi 的实例。
  • 接下来,创建 FileInfo 的实例并提供输入 DOCX 文件路径。
  • 然后,初始化 WordProcessingLoadOptions 的实例并分配 FileInfo。
  • 接下来,使用 WordProcessingLoadOptions 对象作为参数创建 LoadRequest。
  • 然后,使用 LoadRequest 对象调用 EditApi.load() 方法以加载输入 DOCX 文件。
  • 之后,使用加载的文件创建 DownloadFileRequest。
  • 然后,调用 FileApi.download\file() 方法将文件下载为 HTML 文档。
  • 接下来,将下载的 HTML 文件作为字符串读取。
  • 然后,编辑 HTML 并保存更新后的 HTML 文档。
  • 接下来,创建 UploadFileRequest 并将 HTML 路径和文件作为参数传递。
  • 然后,使用 UploadFileRequest 调用 FileApi.upload\file() 方法来上传更新后的 HTML 文件。
  • 接下来,创建 WordProcessingSaveOptions 的实例以保存在 DOCX 中。
  • 之后,使用 WordProcessingSaveOptions 对象创建 SaveRequest。
  • 最后,使用带有 SaveRequest 对象的 EditApi.save() 方法将 HTML 保存回 DOCX。

以下代码示例展示了如何在 Python 中使用 REST API 编辑 Word 文档。

# 初始化 API 的实例
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 提供输入文件路径
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# 定义 加载Options 以将其加载到可编辑状态
loadOptions = groupdocs_editor_cloud.WordProcessing加载Options()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# 创建加载请求
loadRequest = groupdocs_editor_cloud.加载Request(loadOptions)

# 加载
loadResult = editApi.load(loadRequest)        

# 创建下载请求
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# 下载 html 文档
htmlFile = fileApi.download_file(downloadRequest)

# 阅读html文档
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# 编辑一些东西...    
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")

# 将 html 写回文件
with open(htmlFile, 'w') as file:
    file.write(html)

# 创建上传请求
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# 上传文件
fileApi.upload_file(uploadRequest)

# 将 html 保存回 docx
saveOptions = groupdocs_editor_cloud.WordProcessing节省Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 创建保存请求
saveRequest = groupdocs_editor_cloud.节省Request(saveOptions)

# 节省
saveResult = editApi.save(saveRequest)

# 完毕
print("Document edited: " + saveResult.path)
在 Python 中使用 REST API 编辑 Word 文档。

在 Python 中使用 REST API 编辑 Word 文档。

下载更新文件

以上代码示例将编辑后的 Word 文档 (DOCX) 保存在云端。可以使用以下代码示例下载它:

# API初始化
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# 创建下载文件请求
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)

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

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

使用 Python 在 Word 文档中添加表格

我们可以按照前面提到的步骤以编程方式在 Word 文档中添加表格。但是,我们需要更新 HTML 以在文档中添加一个表格,如下所示:

html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
	<caption style=\"font-weight:bold;\"> Persons List</caption>
	<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
	<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
	<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
	</table>""")

以下代码示例展示了如何在 Python 中使用 REST API 在 Word 文档中添加表格。请按照前面提到的步骤上传和下载文件。

# 初始化 API 的实例
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 提供输入文件路径
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# 定义 加载Options 以将其加载到可编辑状态
loadOptions = groupdocs_editor_cloud.WordProcessing加载Options()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# 创建加载请求
loadRequest = groupdocs_editor_cloud.加载Request(loadOptions)

# 加载
loadResult = editApi.load(loadRequest)        

# 创建下载请求
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# 下载 html 文件
htmlFile = fileApi.download_file(downloadRequest)

# 阅读html文档
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# 插入表格
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
  <caption style=\"font-weight:bold;\"> Persons List</caption>
  <tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
  <tr><td>Jill</td><td>Smith</td><td>50</td></tr>
  <tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
  </table>""")

# 将 html 写回文件
with open(htmlFile, 'w') as file:
    file.write(html)

# 创建上传请求
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# 上传文件
fileApi.upload_file(uploadRequest)

# 将 html 保存回 docx
saveOptions = groupdocs_editor_cloud.WordProcessing节省Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 创建保存请求
saveRequest = groupdocs_editor_cloud.节省Request(saveOptions)

# 节省
saveResult = editApi.save(saveRequest)

# 完毕
print("Document edited: " + saveResult.path)
使用 Python 在 Word 文档中添加表格。

使用 Python 在 Word 文档中添加表格。

使用 Python 在 Word 文档中插入图像

我们可以按照前面提到的步骤以编程方式在 Word 文档中插入图像。但是,我们需要更新 HTML 以在文档中插入图像,如下所示:

html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");

以下代码示例展示了如何在 Python 中使用 REST API 在 Word 文档中插入图像。请按照前面提到的步骤上传和下载文件。

# 初始化 API 的实例
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# 提供输入文件路径
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# 定义 加载Options 以将其加载到可编辑状态
loadOptions = groupdocs_editor_cloud.WordProcessing加载Options()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# 创建加载请求
loadRequest = groupdocs_editor_cloud.加载Request(loadOptions)

# 加载
loadResult = editApi.load(loadRequest)        

# 创建下载请求
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# 下载 html 文件
htmlFile = fileApi.download_file(downloadRequest)

# 阅读html文档
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# 插入图像
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");

# 将 html 写回文件
with open(htmlFile, 'w') as file:
    file.write(html)

# 创建上传请求
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# 上传文件
fileApi.upload_file(uploadRequest)

# 将 html 保存回 docx
saveOptions = groupdocs_editor_cloud.WordProcessing节省Options()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# 创建保存请求
saveRequest = groupdocs_editor_cloud.节省Request(saveOptions)

# 节省
saveResult = editApi.save(saveRequest)

# 完毕
print("Document edited: " + saveResult.path)
在 Python 中使用 REST API 编辑 Word 文档

使用 Python 在 Word 文档中插入图像。

在线试用

请试用以下使用上述API开发的免费在线DOCX编辑工具。 https://products.groupdocs.app/editor/docx

结论

在本文中,我们学习了如何在云端编辑 Word 文档。我们还了解了如何使用 Python 中的 REST API 在 DOCX 文件中添加表格或插入图像。本文还介绍了如何以编程方式将 DOCX 文件上传到云端,然后从云端下载编辑后的文件。此外,您可以使用 文档 了解有关 GroupDocs.Editor Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看