Edite documentos de Word usando la API REST en Python

En ciertos casos, es posible que necesitemos editar documentos de Word mediante programación. Podemos agregar, editar o eliminar fácilmente el contenido de los archivos DOC o DOCX o aplicar formato de texto usando Python. En este artículo, aprenderemos a editar documentos de Word utilizando una API REST en Python.

En este artículo se tratarán los siguientes temas:

Editor de documentos de Word API REST y SDK de Python

Para editar los archivos DOCX, usaremos la API Python SDK de GroupDocs.Editor Cloud. Instálalo usando el siguiente comando en la consola:

pip install groupdocs_editor_cloud

Por favor, obtenga su ID de cliente y secreto del tablero antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

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

Edite documentos de Word usando la API REST en Python

Podemos editar documentos de Word siguiendo los sencillos pasos que se mencionan a continuación:

  1. Subir el archivo DOCX a la Nube
  2. Editar Documento de Word usando Python
  3. Descargar el archivo actualizado

Sube el documento

En primer lugar, subiremos el archivo DOCX a la nube utilizando el ejemplo de código que se muestra a continuación:

# Crear una instancia de la API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# Subir archivos de muestra
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)

Como resultado, el archivo DOCX cargado estará disponible en la sección de archivos del tablero en la nube.

Editar documento de Word usando Python

Podemos editar el documento de Word mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree instancias de FileApi y EditApi.
  • A continuación, cree una instancia de FileInfo y proporcione la ruta del archivo DOCX de entrada.
  • Luego, inicialice una instancia de WordProcessingLoadOptions y asigne FileInfo.
  • A continuación, cree LoadRequest con el objeto WordProcessingLoadOptions como argumento.
  • Luego, llama al método EditApi.load() con el objeto LoadRequest para cargar el archivo DOCX de entrada.
  • Después de eso, cree DownloadFileRequest con el archivo cargado.
  • Luego, llame al método FileApi.download\file() para descargar el archivo como un documento HTML.
  • A continuación, lea el archivo HTML descargado como una cadena.
  • Luego, edite el HTML y guarde el documento HTML actualizado.
  • A continuación, cree UploadFileRequest y pase la ruta HTML y el archivo como parámetros.
  • Luego, llame al método FileApi.upload\file() con UploadFileRequest para cargar el archivo HTML actualizado.
  • A continuación, cree una instancia de WordProcessingSaveOptions para guardar en el DOCX.
  • Después de eso, cree SaveRequest con el objeto WordProcessingSaveOptions.
  • Finalmente, guarde HTML nuevamente en DOCX usando el método EditApi.save() con el objeto SaveRequest.

El siguiente ejemplo de código muestra cómo editar un documento de Word usando una API REST en Python.

# Inicializar las instancias de las API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# Proporcione la ruta del archivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# Defina CargaOptions para cargarlo en estado editable
loadOptions = groupdocs_editor_cloud.WordProcessingCargaOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# Crear solicitud de carga
loadRequest = groupdocs_editor_cloud.CargaRequest(loadOptions)

# Carga
loadResult = editApi.load(loadRequest)        

# Crear solicitud de descarga
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# Descargar documento html
htmlFile = fileApi.download_file(downloadRequest)

# Leer el documento html
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# Edita algo...    
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")

# Escribir html de nuevo en el archivo
with open(htmlFile, 'w') as file:
    file.write(html)

# Crear solicitud de carga
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# Subir archivo
fileApi.upload_file(uploadRequest)

# Guardar html de nuevo en docx
saveOptions = groupdocs_editor_cloud.WordProcessingAhorrarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# Crear solicitud de guardado
saveRequest = groupdocs_editor_cloud.AhorrarRequest(saveOptions)

# Ahorrar
saveResult = editApi.save(saveRequest)

# Hecho
print("Document edited: " + saveResult.path)
Edite documentos de Word usando la API REST en Python.

Edite documentos de Word usando la API REST en Python.

Descargar el archivo actualizado

El ejemplo de código anterior guardará el documento de Word editado (DOCX) en la nube. Se puede descargar usando el siguiente ejemplo de código:

# Inicialización de la API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# Crear solicitud de archivo de descarga
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)

# Descargar archivo
response = file_api.download_file(request)

# Mueva el archivo descargado a su directorio de trabajo
shutil.move(response, "C:\\Files\\Editor\\")

Agregar tabla en documentos de Word usando Python

Podemos agregar una tabla en documentos de Word mediante programación siguiendo los pasos mencionados anteriormente. Sin embargo, necesitamos actualizar el HTML para agregar una tabla en el documento como se muestra a continuación:

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

El siguiente ejemplo de código muestra cómo agregar una tabla en un documento de Word usando una API REST en Python. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

# Inicializar las instancias de las API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# Proporcione la ruta del archivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# Defina CargaOptions para cargarlo en estado editable
loadOptions = groupdocs_editor_cloud.WordProcessingCargaOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# Crear solicitud de carga
loadRequest = groupdocs_editor_cloud.CargaRequest(loadOptions)

# Carga
loadResult = editApi.load(loadRequest)        

# Crear solicitud de descarga
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# Descargar documento html
htmlFile = fileApi.download_file(downloadRequest)

# Leer el documento html
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

# Insertar tabla
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>""")

# Escribir html de nuevo en el archivo
with open(htmlFile, 'w') as file:
    file.write(html)

# Crear solicitud de carga
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# Subir archivo
fileApi.upload_file(uploadRequest)

# Guardar html de nuevo en docx
saveOptions = groupdocs_editor_cloud.WordProcessingAhorrarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# Crear solicitud de guardado
saveRequest = groupdocs_editor_cloud.AhorrarRequest(saveOptions)

# Ahorrar
saveResult = editApi.save(saveRequest)

# Hecho
print("Document edited: " + saveResult.path)
Agregar tabla en documentos de Word usando Python.

Agregar tabla en documentos de Word usando Python.

Insertar imagen en documentos de Word usando Python

Podemos insertar una imagen en documentos de Word mediante programación siguiendo los pasos mencionados anteriormente. Sin embargo, necesitamos actualizar el HTML para insertar una imagen en el documento como se muestra a continuación:

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

El siguiente ejemplo de código muestra cómo insertar una imagen en un documento de Word usando una API REST en Python. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

# Inicializar las instancias de las API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)

# Proporcione la ruta del archivo de entrada
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")

# Defina CargaOptions para cargarlo en estado editable
loadOptions = groupdocs_editor_cloud.WordProcessingCargaOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"

# Crear solicitud de carga
loadRequest = groupdocs_editor_cloud.CargaRequest(loadOptions)

# Carga
loadResult = editApi.load(loadRequest)        

# Crear solicitud de descarga
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)

# Descargar documento html
htmlFile = fileApi.download_file(downloadRequest)

# Leer el documento html
html = ""       
with open(htmlFile, 'r') as file:
    html = file.read()

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

# Escribir html de nuevo en el archivo
with open(htmlFile, 'w') as file:
    file.write(html)

# Crear solicitud de carga
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)

# Subir archivo
fileApi.upload_file(uploadRequest)

# Guardar html de nuevo en docx
saveOptions = groupdocs_editor_cloud.WordProcessingAhorrarOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path

# Crear solicitud de guardado
saveRequest = groupdocs_editor_cloud.AhorrarRequest(saveOptions)

# Ahorrar
saveResult = editApi.save(saveRequest)

# Hecho
print("Document edited: " + saveResult.path)
Edite documentos de Word usando la API REST en Python

Insertar imagen en documentos de Word usando Python.

Prueba en línea

Pruebe la siguiente herramienta de edición DOCX en línea gratuita, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/editor/docx

Conclusión

En este artículo hemos aprendido a editar documentos de Word en la nube. También hemos visto cómo agregar una tabla o insertar una imagen en el archivo DOCX usando una API REST en Python. Este artículo también explicó cómo cargar mediante programación un archivo DOCX a la nube y luego descargar el archivo editado de la nube. Además, puede obtener más información sobre GroupDocs.Editor Cloud API utilizando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también