Artículo
· 27 mayo, 2024 Lectura de 4 min

Unir bases de datos de excel con IRIS

¡Hola a todos! 

Llevo muchos años trabajando con Excel y, últimamente, lo he enfocado al tratamiento de bases de datos.

Realmente mi experiencia con Excel ha sido para labores financieras, no tanto analíticas de datos en sí, pero en un proyecto reciente he podido trabajar mucho con SQL y me he interesado un poco por el tema (no soy para nada una experta, ¡aviso!)

Me he preguntado cómo podría unir varios excels en uno para, por ejemplo, entregárselo al Data Análisis utilizando la tecnología InterSystems. He recopilado la información en un pequeño artículo. Espero que sea útil y por supuesto estoy abierta a correcciones. 

Vamos a utilizar InterSystems IRIS. Lo que buscaremos es leer los archivos Excel, procesarlos y por último fusionarlos. 

PRIMERO: Qué necesitaremos

Vale, para empezar, deberíamos tener instalado InterSystems IRIS.

Necesitaremos instalar las librerías de Python pandas y openpyxl para poder trabajar con Excel.

Importarte: hay que asegurarse de tener InterSystems Embedded Python habilitado en el entorno IRIS.

SEGUNDA: Lectura de un Excel con Python

Como InterSystems IRIS soporta la integración con Python, podemos leer/manipular archivos Excel. Por ejemplo podríamos usar este script: 

import pandas as pd

def merge_excels(file_paths, output_path):

    dataframes = []

    

    for file in file_paths:

        df = pd.read_excel(file)

        dataframes.append(df)

    

    merged_df = pd.concat(dataframes, ignore_index=True)

    merged_df.to_excel(output_path, index=False)

    

    return output_path

# Ejemplo de uso:

files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']

output_file = 'merged_output.xlsx'

merge_excels(files, output_file)

Tercero: integración en IRIS

Vamos a ejecutar dicho script de Python desde InterSystems IRIS. Para ello recurriremos al soporte de Embedded Python. Lo que tendríamos que hacer es crear una class (o clase, vaya) en ObjectScript para llamar a dicho Script.

Class ExcelApp.ExcelMerger Extends %RegisteredObject

{

    ClassMethod MergeExcelFiles(filePaths As %String, outputFile As %String) As %String [ Language = python ]

    {

        import pandas as pd

        def merge_excels(file_paths, output_path):

            dataframes = []

            

            for file in file_paths:

                df = pd.read_excel(file)

                dataframes.append(df)

            

            merged_df = pd.concat(dataframes, ignore_index=True)

            merged_df.to_excel(output_path, index=False)

            

            return output_path

        files = filePaths.split(",")

        result = merge_excels(files, outputFile)

        return result

    }

}

CUARTO: fusionar desde IRIS

Por último, con el método MergeExcelFiles desde InterSystems IRIS podríamos fusionar los archivos Excel.

Set filePaths = "file1.xlsx,file2.xlsx,file3.xlsx"

Set outputFile = "merged_output.xlsx"

Set result = ##class(ExcelApp.ExcelMerger).MergeExcelFiles(filePaths, outputFile)

Write "Archivos fusionados y guardados en: ", result

EN DEFINITIVA:

No sé si esto sería lo más eficiente o útil, como digo, soy bastante novata en tratamiento de datos. Si conocéis algún tutorial para potenciar el uso de excel en este sentido es bien recibido.

Si sigo entrando en proyectos donde me pidan este aspecto seguiré indagando poco a poco ¡Gracias!

Comentarios (1)2
Inicie sesión o regístrese para continuar