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

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

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

Семейство облачных продуктов GroupDocs.Editor

Для редактирования документов Word или таблиц Excel я буду использовать Python SDK of GroupDocs.Editor Cloud API. Он позволяет программно редактировать документы Word, листы Excel или документы других поддерживаемых форматов. Он также предоставляет SDK для .NET, Java, PHP, Ruby, Android и Node.js в качестве членов семейства редакторов документов для Cloud API.

Вы можете установить GroupDocs.Editor-Cloud в свой проект Python, используя следующую команду в консоли:

pip install groupdocs_editor_cloud

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

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"

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

Вы можете редактировать документ 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 будет загружен в облачное хранилище и будет доступен в разделе файлов вашей панели управления.

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

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

  • Создайте экземпляры File API и Edit API.
  • Предоставьте WordProcessingLoadOptions
  • Загрузите файл с помощью метода Load Edit API.
  • Загрузите HTML-документ, используя метод Загрузить файл File API.
  • Редактировать HTML-документ
  • Загрузить HTML обратно, используя метод Загрузить файл File API.
  • Предоставьте WordProcessingSaveOptions для сохранения в DOCX
  • Сохраните HTML обратно в DOCX, используя метод Save Edit API.

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

# Создайте необходимые экземпляры 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\\")

Редактировать лист Excel с помощью REST API

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

  • Создайте экземпляры File API и Edit API.
  • Предоставьте SpreadsheetLoadOptions
  • Загрузите файл с помощью метода Load Edit API.
  • Загрузите HTML-документ, используя метод Download File File API.
  • Редактировать HTML-документ
  • Загрузить HTML обратно, используя метод Загрузить файл File API.
  • Предоставьте SpreadsheetSaveOptions для сохранения в XLSX
  • Сохраните HTML обратно в XLSX, используя метод Save Edit API.

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

# Создайте необходимые экземпляры 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)

Заключение

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

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