Em certos casos, podemos precisar editar documentos do Word programaticamente. Podemos facilmente adicionar, editar ou excluir o conteúdo de arquivos DOC ou DOCX ou aplicar formatação de texto usando Python. Neste artigo, aprenderemos como editar documentos do Word usando uma API REST em Python.
Os seguintes tópicos serão abordados neste artigo:
- API REST do editor de documentos do Word e SDK do Python
- Editar documento do Word usando a API REST em Python
- Adicionar tabela em documentos do Word usando Python
- Inserir imagem em documentos do Word usando Python
API REST do editor de documentos do Word e SDK do Python
Para editar os arquivos DOCX, usaremos a API Python SDK of GroupDocs.Editor Cloud. Instale-o usando o seguinte comando no console:
pip install groupdocs_editor_cloud
Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:
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 = ""
Editar documentos do Word usando a API REST em Python
Podemos editar documentos do Word seguindo as etapas simples mencionadas abaixo:
- Carregar o arquivo DOCX para a nuvem
- Editar Documento do Word usando Python
- Baixar o arquivo atualizado
Carregue o Documento
Em primeiro lugar, faremos o upload do arquivo DOCX para a nuvem usando o exemplo de código abaixo:
# Criar uma instância da API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Carregar arquivos de amostra
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)
Como resultado, o arquivo DOCX carregado estará disponível na seção de arquivos do painel na nuvem.
Editar documento do Word usando Python
Podemos editar o documento do Word programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie instâncias de FileApi e EditApi.
- Em seguida, crie uma instância do FileInfo e forneça o caminho do arquivo DOCX de entrada.
- Em seguida, inicialize uma instância de WordProcessingLoadOptions e atribua FileInfo.
- Em seguida, crie o objeto LoadRequest com WordProcessingLoadOptions como argumento.
- Em seguida, chame o método EditApi.load() com o objeto LoadRequest para carregar o arquivo DOCX de entrada.
- Depois disso, crie o DownloadFileRequest com o arquivo carregado.
- Em seguida, chame o método FileApi.download\file() para baixar o arquivo como um documento HTML.
- Em seguida, leia o arquivo HTML baixado como uma string.
- Em seguida, edite o HTML e salve o documento HTML atualizado.
- Em seguida, crie UploadFileRequest e passe o caminho HTML e o arquivo como parâmetros.
- Em seguida, chame o método FileApi.upload\file() com UploadFileRequest para carregar o arquivo HTML atualizado.
- Em seguida, crie uma instância do WordProcessingSaveOptions para salvar no DOCX.
- Depois disso, crie SaveRequest com o objeto WordProcessingSaveOptions.
- Por fim, salve o HTML de volta no DOCX usando o método EditApi.save() com o objeto SaveRequest.
O exemplo de código a seguir mostra como editar um documento do Word usando uma API REST em Python.
# Inicializar as instâncias das APIs
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Forneça o caminho do arquivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Defina CarregarOptions para carregá-lo em estado editável
loadOptions = groupdocs_editor_cloud.WordProcessingCarregarOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Criar solicitação de carregamento
loadRequest = groupdocs_editor_cloud.CarregarRequest(loadOptions)
# Carregar
loadResult = editApi.load(loadRequest)
# Criar solicitação de download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Baixar documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leia o documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Edite alguma coisa...
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")
# Escreva html de volta ao arquivo
with open(htmlFile, 'w') as file:
file.write(html)
# Criar solicitação de upload
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Subir arquivo
fileApi.upload_file(uploadRequest)
# Salve html de volta para docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Criar solicitação de salvamento
saveRequest = groupdocs_editor_cloud.SalvarRequest(saveOptions)
# Salvar
saveResult = editApi.save(saveRequest)
# Feito
print("Document edited: " + saveResult.path)
Baixe o arquivo atualizado
O exemplo de código acima salvará o documento do Word editado (DOCX) na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:
# inicialização da API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Criar solicitação de arquivo de download
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)
# ⇬ Fazer download do arquivo
response = file_api.download_file(request)
# Mova o arquivo baixado para o seu diretório de trabalho
shutil.move(response, "C:\\Files\\Editor\\")
Adicionar tabela em documentos do Word usando Python
Podemos adicionar uma tabela em documentos do Word programaticamente seguindo as etapas mencionadas anteriormente. No entanto, precisamos atualizar o HTML para adicionar uma tabela no documento conforme mostrado abaixo:
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>""")
O exemplo de código a seguir mostra como adicionar uma tabela em um documento do Word usando uma API REST em Python. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.
# Inicializar as instâncias das APIs
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Forneça o caminho do arquivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Defina CarregarOptions para carregá-lo em estado editável
loadOptions = groupdocs_editor_cloud.WordProcessingCarregarOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Criar solicitação de carregamento
loadRequest = groupdocs_editor_cloud.CarregarRequest(loadOptions)
# Carregar
loadResult = editApi.load(loadRequest)
# Criar solicitação de download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Baixar documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leia o documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Insira a tabela
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>""")
# Escreva html de volta ao arquivo
with open(htmlFile, 'w') as file:
file.write(html)
# Criar solicitação de upload
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Subir arquivo
fileApi.upload_file(uploadRequest)
# Salve html de volta para docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Criar solicitação de salvamento
saveRequest = groupdocs_editor_cloud.SalvarRequest(saveOptions)
# Salvar
saveResult = editApi.save(saveRequest)
# Feito
print("Document edited: " + saveResult.path)
Inserir imagem em documentos do Word usando Python
Podemos inserir uma imagem em documentos do Word programaticamente seguindo as etapas mencionadas anteriormente. No entanto, precisamos atualizar o HTML para inserir uma imagem no documento conforme mostrado abaixo:
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
O exemplo de código a seguir mostra como inserir uma imagem em um documento do Word usando uma API REST em Python. Siga as etapas mencionadas anteriormente para fazer upload e download de um arquivo.
# Inicializar as instâncias das APIs
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Forneça o caminho do arquivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Defina CarregarOptions para carregá-lo em estado editável
loadOptions = groupdocs_editor_cloud.WordProcessingCarregarOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Criar solicitação de carregamento
loadRequest = groupdocs_editor_cloud.CarregarRequest(loadOptions)
# Carregar
loadResult = editApi.load(loadRequest)
# Criar solicitação de download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Baixar documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leia o documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Insira uma imagem
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
# Escreva html de volta ao arquivo
with open(htmlFile, 'w') as file:
file.write(html)
# Criar solicitação de upload
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Subir arquivo
fileApi.upload_file(uploadRequest)
# Salve html de volta para docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Criar solicitação de salvamento
saveRequest = groupdocs_editor_cloud.SalvarRequest(saveOptions)
# Salvar
saveResult = editApi.save(saveRequest)
# Feito
print("Document edited: " + saveResult.path)
Experimente on-line
Experimente a seguinte ferramenta de edição DOCX on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/editor/docx
Conclusão
Neste artigo, aprendemos como editar documentos do Word na nuvem. Também vimos como adicionar uma tabela ou inserir uma imagem no arquivo DOCX usando uma API REST em Python. Este artigo também explicou como carregar programaticamente um arquivo DOCX para a nuvem e, em seguida, baixar o arquivo editado da nuvem. Além disso, 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.