Compare archivos de Excel usando la API REST en Python.

Compare datos en archivos de Excel usando la API REST en Python

Excel es una de las aplicaciones de hojas de cálculo más populares y ampliamente utilizadas. Permite organizar, analizar, computar y almacenar datos en forma tabular. Es un requisito muy común comparar datos de archivos xlsx de dos archivos de Excel diferentes o varias versiones del mismo archivo. Podemos comparar fácilmente dos hojas de cálculo o más archivos de Excel para realizar un seguimiento de los cambios y resaltar las diferencias en un nuevo archivo. En este artículo, aprenderemos cómo comparar archivos de Excel usando una API REST en Python.

Los siguientes temas se cubrirán para comparar la hoja de cálculo en este artículo:

REST API y Python SDK para comparar archivos de Excel

Para comparar dos o más archivos XLSX, utilizaremos la API Python SDK of GroupDocs.Comparison Cloud. Permite comparar ‎dos o más documentos de los formatos admitidos y resalta las diferencias en un archivo resultante. Instálalo usando el siguiente comando en la consola:

pip install groupdocs-comparison-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:

# Este ejemplo de código demuestra cómo agregar su ID de cliente y secreto en el código.
client_id = '659fe7da-715b-4744-a0f7-cf469a392b73';
client_secret = 'b377c36cfa28fa69960ebac6b6e36421';

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Compara dos archivos de Excel usando Python

Podemos comparar dos archivos de Excel en python en la nube siguiendo los sencillos pasos que se indican a continuación:

  1. Subir los archivos XLSX a la nube.
  2. Comparar archivos de Excel cargados.
  3. Descargar el archivo resultante.

Sube los archivos de Excel

En primer lugar, cargaremos los archivos XLSX de origen y de destino en la nube utilizando el siguiente ejemplo de código:

# Este ejemplo de código demuestra cómo cargar varios archivos de Excel en la nube.
# Crear instancia de la API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# Subir archivos de muestra
for filename in glob.iglob("C:\\Files\\comparison\\upload\\*.xlsx", recursive=True):
    destFile = filename.replace("C:\\Files\\comparison\\upload\\", "",1)           
    file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
    print("Uploaded file: "+ destFile)

Como resultado, los archivos de Excel cargados estarán disponibles en la sección de archivos del tablero en la nube.

Compare archivos de Excel para diferencias en Python

Ahora, compararemos los archivos de Excel cargados mediante programación siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, configure las rutas del archivo de entrada XLSX de origen y de destino cargados.
  • Luego, inicialice el objeto ComparisonOptions y asigne los archivos de origen y de destino.
  • A continuación, establezca la ruta del archivo de salida.
  • Después de eso, cree ComparisonsRequest con ComparisonOptions como argumento.
  • Finalmente, compare documentos de Excel y obtenga resultados usando el método comparaciones().

El siguiente ejemplo de código muestra cómo comparar hojas de Excel en línea usando la API REST en Python.

# Este ejemplo de código demuestra cómo comparar dos archivos de Excel.
# Crear las instancias de API necesarias
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Archivo fuente de entrada
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# Archivo de destino de entrada
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.xlsx"

# Definir opciones de comparación
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.xlsx"

# Crear solicitud de comparación
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# comparar
response = api_instance.comparisons(request)
Cómo comparar datos en Excel y comparar múltiples archivos de Excel

Archivos Excel de origen y destino.

Compare 2 archivos de Excel usando una API REST en Python.

Excel compara dos hojas en Python usando la API REST.

Descargar el archivo resultante

Como resultado, el ejemplo de código anterior guardará un archivo de Excel recién creado con una hoja de cálculo de comparación en la nube. Se puede descargar usando el siguiente ejemplo de código:

# Este ejemplo de código demuestra cómo descargar un archivo de Excel desde la nube.
# Crear instancia de la API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# Descargar solicitud de archivo
request = groupdocs_comparison_cloud.DownloadFileRequest("result.xlsx", "")

# Descargar archivo
response = file_api.download_file(request)

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

Compara múltiples archivos de Excel en Python

También podemos comparar las hojas de Excel en busca de diferencias siguiendo los pasos que se detallan a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, configure la ruta del archivo XLSX de la fuente de entrada.
  • Luego, configure varias rutas de archivos XLSX de destino.
  • A continuación, inicialice el objeto ComparisonOptions y asigne los archivos de origen y de destino.
  • Luego, establezca la ruta del archivo de salida.
  • Después de eso, cree ComparisonsRequest con ComparisonOptions como argumento.
  • Finalmente, compare la hoja de Excel en línea y obtenga resultados usando el método comparaciones().

El siguiente ejemplo de código muestra cómo comparar varios archivos de Excel mediante una API REST en Python.

# Este ejemplo de código demuestra cómo comparar varios archivos de Excel.
# Crear las instancias de API necesarias
api_instance = groupdocs_comparison_cloud.CompararApi.from_keys(client_id, client_secret)

# Archivo fuente de entrada
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# Introduzca el archivo de destino 1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.xlsx"

# Introduzca el archivo de destino 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.xlsx"

# Definir opciones de comparación
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result_multiple.xlsx"

# Solicitud de comparación
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# Comparar
response = api_instance.comparisons(request)

Obtener lista de cambios en Python

Podemos obtener una lista de todos los cambios y comparar datos en hojas de Excel encontradas durante la comparación de archivos de Excel siguiendo los pasos que se indican a continuación:

  • En primer lugar, cree una instancia de CompareApi.
  • A continuación, configure la ruta del archivo XLSX de la fuente de entrada.
  • Luego, configure la ruta del archivo XLSX de destino.
  • A continuación, inicialice el objeto ComparisonOptions.
  • Luego, asigne los archivos de origen/destino y establezca la ruta del archivo de salida.
  • Después de eso, cree PostChangesRequest con el objeto ComparisonOptions como argumento.
  • Finalmente, obtenga resultados llamando al método postChanges().

El siguiente ejemplo de código muestra cómo comparar datos en dos hojas de Excel para encontrar coincidencias usando la API REST en Python.

# Este ejemplo de código demuestra cómo obtener una lista de cambios encontrados durante la comparación.
# Crear las instancias de API necesarias
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Archivo fuente de entrada
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.xlsx"

# Archivo de destino de entrada
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.xlsx"

# Definir opciones de comparación
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]

# Crear solicitud de cambios posteriores
request = groupdocs_comparison_cloud.PostChangesRequest(options)

# publicar cambios
response = api_instance.post_changes(request)

# Espectáculo
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));

Prueba en línea

¿Cómo comparar datos de dos hojas de Excel? Pruebe la siguiente herramienta de comparación XLSX en línea gratuita para comparar dos hojas de Excel para encontrar datos coincidentes. Esta herramienta de comparación de Excel compara 2 hojas de Excel en línea y se desarrolla utilizando la API anterior.

Conclusión

En este artículo, hemos aprendido a:

  • compare dos hojas de Excel y resalte las diferencias en Python;
  • obtener una lista de elementos insertados y eliminados;
  • cargar mediante programación más de un archivo XLSX a la nube;
  • descargar el archivo XLSX de la nube.

Además, puede obtener más información sobre GroupDocs.Comparison 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 sobre cómo comparar hojas de cálculo de Excel, no dude en contactarnos en el foro.

Ver también