Como desarrollador de Python, es posible que deba editar documentos de Word o Excel mediante programación. Puede actualizar dichos documentos sin instalar ninguna aplicación externa. Este artículo se centrará en cómo editar documentos de Word o Excel usando una API REST.

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

API REST del editor de documentos y SDK de Python

Familia de productos en la nube GroupDocs.Editor

Para editar documentos de Word u hojas de Excel, usaré la Python SDK de GroupDocs.Editor Cloud API. Le permite editar mediante programación documentos de procesamiento de Word, hojas de Excel o documentos de otros formatos admitidos. También proporciona SDK de .NET, Java, PHP, Ruby, Android y Node.js como sus miembros de la familia de editores de documentos para la API de la nube.

Puede instalar GroupDocs.Editor-Cloud en su proyecto Python usando el siguiente comando en la consola:

pip install groupdocs_editor_cloud

Obtenga su ID de cliente y Secreto de cliente del panel de control antes de comenzar a seguir los pasos y los ejemplos de código disponibles. Agregue su ID y secreto en el código como se muestra a continuación:

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 de Word usando una API REST

Puede editar el documento de Word siguiendo los sencillos pasos que se mencionan a continuación:

Sube el documento

En primer lugar, cargue el documento de Word en la nube utilizando el ejemplo de código que se muestra a continuación:

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

# cargar archivo de muestra
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, el archivo de Word se cargará en Cloud Storage y estará disponible en la sección de archivos de su tablero.

Editar documento de Word en Python

Siga los pasos que se mencionan a continuación para editar el documento de Word mediante programación.

  • Crear instancias de File API y Editar API
  • Proporcionar WordProcessingLoadOptions
  • Cargue un archivo con el método Load de Edit API
  • Descargue el documento HTML utilizando el método Descargar archivo de File API
  • Editar documento HTML
  • Vuelva a cargar HTML utilizando el método Subir archivo de la API de archivos
  • Proporcione WordProcessingSaveOptions para guardar en DOCX
  • Guarde HTML nuevamente en DOCX usando el método Guardar de Editar API

El siguiente fragmento de código muestra cómo actualizar un documento de Word mediante una API REST.

# Crear las instancias de API necesarias
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)

# El documento ya se cargó en el almacenamiento.
# Cargarlo en estado editable
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))

# Descargar 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()

# Edita algo...
html = html.replace("Sample test text", "Hello world")

# Subir html de nuevo al almacenamiento
with open(html_file, 'w') as file:
    file.write(html)

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

# Guardar html de nuevo en 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))

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

Descargar el archivo actualizado

El ejemplo de código anterior guardará el archivo de Word editado en la nube. Puede descargarlo utilizando el siguiente ejemplo de código:

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

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

Editar hoja de Excel usando una API REST

Siga los pasos que se mencionan a continuación para editar la hoja de Excel mediante programación.

  • Crear instancias de File API y Editar API
  • Proporcionar opciones de carga de hoja de cálculo
  • Cargue un archivo con el método Load de Edit API
  • Descargue el documento HTML utilizando el método Descargar archivo de File API
  • Editar documento HTML
  • Vuelva a cargar HTML utilizando el método Cargar archivo de File API
  • Proporcione SpreadsheetSaveOptions para guardar en XLSX
  • Guarde HTML nuevamente en XLSX usando el método Guardar de Editar API

El ejemplo de código simple que se proporciona a continuación demuestra cómo actualizar una hoja de Excel usando una API REST. Siga los pasos mencionados anteriormente para cargar y descargar un archivo.

# Crear las instancias de API necesarias
edit_api = groupdocs_editor_cloud.EditApi.from_config(configurations)
file_api = groupdocs_editor_cloud.FileApi.from_config(configurations)

# El documento ya se cargó en el almacenamiento.
# Cargarlo en estado editable
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))

# Descargar 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()

# Edita algo...
html = html.replace("This is sample sheet", "This is sample sheep")

# Subir html de nuevo al almacenamiento
with open(html_file, 'w') as file:
    file.write(html)

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

# Guardar html de nuevo en 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))

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

Conclusión

En este artículo, ha aprendido a editar documentos de Word u hojas de Excel en la nube con la API REST del Editor de documentos usando Python. También aprendió cómo cargar mediante programación los archivos en la nube y luego descargar los archivos actualizados de la nube. 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