Редактировать документы Word с помощью REST API в Python

В некоторых случаях нам может потребоваться программно редактировать документы Word. Мы можем легко добавлять, редактировать или удалять содержимое файлов DOC или DOCX или применять форматирование текста с помощью Python. В этой статье мы узнаем, как редактировать документы Word с помощью REST API в Python.

В этой статье должны быть раскрыты следующие темы:

REST API редактора документов Word и Python SDK

Для редактирования файлов DOCX мы будем использовать API Python SDK of GroupDocs.Editor Cloud. Пожалуйста, установите его с помощью следующей команды в консоли:

pip install groupdocs_editor_cloud

Прежде чем выполнять указанные шаги, получите свой идентификатор клиента и секрет на панели управления. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

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 = ""

Редактировать документы Word с помощью REST API в Python

Мы можем редактировать документы Word, выполнив простые шаги, указанные ниже:

  1. Загрузить файл DOCX в облако
  2. Изменить Документ Word с использованием Python
  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 будет доступен в разделе файлов панели инструментов в облаке.

Редактировать документ Word с помощью Python

Мы можем редактировать документ Word программно, выполнив следующие шаги:

  • Во-первых, создайте экземпляры FileApi и EditApi.
  • Затем создайте экземпляр FileInfo и укажите путь к входному файлу DOCX.
  • Затем инициализируйте экземпляр WordProcessingLoadOptions и назначьте FileInfo.
  • Затем создайте LoadRequest с объектом WordProcessingLoadOptions в качестве аргумента.
  • Затем вызовите метод EditApi.load() с объектом LoadRequest, чтобы загрузить входной файл DOCX.
  • После этого создайте DownloadFileRequest с загруженным файлом.
  • Затем вызовите метод FileApi.download\file(), чтобы загрузить файл в виде HTML-документа.
  • Затем прочитайте загруженный файл HTML как строку.
  • Затем отредактируйте HTML и сохраните обновленный HTML-документ.
  • Затем создайте UploadFileRequest и передайте HTML-путь и файл в качестве параметров.
  • Затем вызовите метод FileApi.upload\file() с UploadFileRequest, чтобы загрузить обновленный HTML-файл.
  • Затем создайте экземпляр WordProcessingSaveOptions для сохранения в формате DOCX.
  • После этого создайте SaveRequest с объектом WordProcessingSaveOptions.
  • Наконец, сохраните HTML обратно в DOCX, используя метод EditApi.save() с объектом SaveRequest.

В следующем примере кода показано, как редактировать документ Word с помощью REST API в Python.

# Инициализировать экземпляры 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)
Редактируйте документы Word с помощью REST API в Python.

Редактируйте документы Word с помощью REST API в Python.

Загрузите обновленный файл

Приведенный выше пример кода сохранит отредактированный документ 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\\")

Добавить таблицу в документы Word с помощью Python

Мы можем добавить таблицу в документы 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>""")

В следующем примере кода показано, как добавить таблицу в документ Word с помощью REST API в Python. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить и скачать файл.

# Инициализировать экземпляры 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)
Добавить таблицу в документы Word с помощью Python.

Добавить таблицу в документы Word с помощью Python.

Вставка изображения в документы Word с помощью Python

Мы можем программно вставить изображение в документы Word, выполнив шаги, упомянутые ранее. Однако нам нужно обновить HTML, чтобы вставить изображение в документ, как показано ниже:

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

В следующем примере кода показано, как вставить изображение в документ Word с помощью REST API в Python. Пожалуйста, следуйте шагам, упомянутым ранее, чтобы загрузить и скачать файл.

# Инициализировать экземпляры 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)
Редактировать документы Word с помощью REST API в Python

Вставьте изображение в документы Word с помощью Python.

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для редактирования DOCX, разработанный с использованием вышеуказанного API. https://products.groupdocs.app/editor/docx

Заключение

В этой статье мы узнали, как редактировать документы Word в облаке. Мы также видели, как добавить таблицу или вставить изображение в файл DOCX с помощью REST API в Python. В этой статье также объясняется, как программно загрузить файл DOCX в облако, а затем загрузить отредактированный файл из облака. Кроме того, вы можете узнать больше о GroupDocs.Editor Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также