В некоторых случаях нам может потребоваться программно редактировать документы Word. Мы можем легко добавлять, редактировать или удалять содержимое файлов DOC или DOCX или применять форматирование текста с помощью Python. В этой статье мы узнаем, как редактировать документы Word с помощью REST API в Python.
В этой статье должны быть раскрыты следующие темы:
- REST API редактора документов Word и Python SDK
- Редактировать документ Word с помощью REST API в Python
- Добавить таблицу в документы Word с помощью Python
- Вставка изображения в документы Word с помощью 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, выполнив простые шаги, указанные ниже:
Загрузить документ
Во-первых, мы загрузим файл 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 (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, выполнив шаги, упомянутые ранее. Однако нам нужно обновить 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)
Попробуйте онлайн
Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент для редактирования DOCX, разработанный с использованием вышеуказанного API. https://products.groupdocs.app/editor/docx
Заключение
В этой статье мы узнали, как редактировать документы Word в облаке. Мы также видели, как добавить таблицу или вставить изображение в файл DOCX с помощью REST API в Python. В этой статье также объясняется, как программно загрузить файл DOCX в облако, а затем загрузить отредактированный файл из облака. Кроме того, вы можете узнать больше о GroupDocs.Editor Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.