Como desenvolvedor Python, você pode precisar editar documentos do Word ou Excel programaticamente. Você pode atualizar esses documentos sem instalar nenhum aplicativo externo. Este artigo se concentrará em como editar documentos do Word ou Excel usando uma API REST.

Os seguintes tópicos serão abordados neste artigo:

API REST do editor de documentos e SDK do Python

Família de produtos GroupDocs.Editor Cloud

Para editar documentos do Word ou planilhas do Excel, usarei a API Python SDK of GroupDocs.Editor Cloud. Ele permite que você edite de forma programática documentos de processamento do Word, planilhas do Excel ou documentos de outros formatos suportados. Ele também fornece SDKs .NET, Java, PHP, Ruby, Android e Node.js como seus membros da família de editores de documentos para a Cloud API.

Você pode instalar GroupDocs.Editor-Cloud em seu projeto Python usando o seguinte comando no console:

pip install groupdocs_editor_cloud

Obtenha seu ID de cliente e Segredo do cliente no painel antes de começar a seguir as etapas e os exemplos de código disponíveis. Adicione seu ID e segredo no código conforme demonstrado abaixo:

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"

Editar documento do Word usando uma API REST

Você pode editar o documento do Word seguindo as etapas simples mencionadas abaixo:

Carregue o Documento

Em primeiro lugar, carregue o documento do Word na nuvem usando o exemplo de código abaixo:

storage_api = groupdocs_editor_cloud.StorageApi.from_config(config_info)
file_api = groupdocs_editor_cloud.FileApi.from_config(config_info)

# carregar arquivo de amostra
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]))

Como resultado, o arquivo do Word será carregado no Cloud Storage e estará disponível na seção de arquivos do seu painel.

Editar documento do Word em Python

Siga as etapas mencionadas abaixo para editar o documento do Word programaticamente.

  • Crie instâncias de API de arquivo e API de edição
  • Forneça WordProcessingLoadOptions
  • Carregue um arquivo com o método Load da API Edit
  • Baixe o documento HTML usando o método Download File da API de arquivo
  • Editar documento HTML
  • Carregar HTML de volta usando o método Upload File da API de arquivo
  • Forneça WordProcessingSaveOptions para salvar em DOCX
  • Salve o HTML de volta no DOCX usando o método Salvar da API de edição

O trecho de código a seguir mostra como atualizar um documento do Word usando uma API REST.

# Crie instâncias de API necessárias
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# O documento já foi carregado no armazenamento.
# Carregue-o no estado editável
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))

# Baixar documento 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()

# Edite alguma coisa...
html = html.replace("Sample test text", "Hello world")

# Carregar html de volta ao armazenamento
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# Salve html de volta para 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))

# Feito
print("Document edited: " + save_result.path)

Baixe o arquivo atualizado

O exemplo de código acima salvará o arquivo do Word editado na nuvem. Você pode baixá-lo usando o seguinte exemplo de código:

request = groupdocs_editor_cloud.DownloadFileRequest("output\\edited.docx", my_storage)
response = file_api.download_file(request)

# Mova o arquivo baixado para o seu diretório de trabalho
shutil.move(response, "C:\\Files\\")

Editar planilha do Excel usando uma API REST

Siga as etapas mencionadas abaixo para editar a planilha do Excel programaticamente.

  • Criar File API e Editar API instâncias
  • Fornecer SpreadsheetLoadOptions
  • Carregue um arquivo com o método Load da API Edit
  • Faça o download do documento HTML usando o método Download File da API de arquivo
  • Editar documento HTML
  • Carregar HTML de volta usando o método Upload File da API de arquivo
  • Fornecer SpreadsheetSaveOptions para salvar em XLSX
  • Salve HTML de volta para XLSX usando o método Salvar da API de edição

O exemplo de código simples fornecido abaixo demonstra como atualizar uma planilha do Excel usando uma API REST. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.

# Crie instâncias de API necessárias
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configurations)

# O documento já foi carregado no armazenamento.
# Carregue-o no estado editável
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))

# Baixar documento 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()

# Edite alguma coisa...
html = html.replace("This is sample sheet", "This is sample sheep")

# Carregar html de volta ao armazenamento
with open(html_file, 'w') as file:
    file.write(html)

file_api.upload_file(groupdocs_editor_cloud.UploadFileRequest(load_result.html_path, html_file))

# Salvar html de volta para 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))

# Feito
print("Excel sheet edited: " + save_result.path)

Conclusão

Neste artigo, você aprendeu como editar documentos do Word ou planilhas do Excel na nuvem com a API REST do Editor de documentos usando Python. Você também aprendeu como carregar os arquivos na nuvem de forma programática e, em seguida, baixar os arquivos atualizados da nuvem. Você pode aprender mais sobre GroupDocs.Editor Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também