Artigo
· Jun. 12 3min de leitura

Unir bases de dados de excel com IRIS

Olá a todos! 

Trabalho há muitos anos com Excel e, ultimamente, foquei no tratamento de bases de dados.

Realmente minha experiencia com Excel foi para trabalhos financeiros, não tanto analíticos de dados em si, mas em um projeto recente pude trabalhar muito com SQL e me interessei um pouco pelo tema (não sou nenhuma uma especialista, já aviso!)

Me perguntei como poderia unir vários excels em um para, por exemplo, entregá-lo à Análise de dados utilizando a tecnologia InterSystems. Juntei toda a informação em um pequeno artigo. Espero que seja útil e, é claro, estou aberta a correções.

Vamos utilizar o InterSystems IRIS. O que buscaremos é ler os arquivos Excel, processá-los e por último fundi-los.

PRIMEIRO: O que necessitaremos

Bem, para começar deveríamos ter instalado InterSystems IRIS.

Necessitaremos instalar as livrarias de Pyhon pandas e openpyxl para poder trabalhar com Excel.

Importante: tenha certeza de ter o InterSystems Embedded Python habilitado no ambiente IRIS.

SEGUNDO: Leitura de um Excel com Python

Como InterSystems IRIS suporta a integração com Python, podemos ler/manipular arquivos Excel. Por exemplo poderí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

# Exemplo de uso:

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

output_file = 'merged_output.xlsx'

merge_excels(files, output_file)

TERCEIRO: integração em IRIS

Vamos executar esse script de Python no InterSystems IRIS. Para isso, vamos recorrer ao suporte de Embedded Python. O que teríamos que fazer é criar uma class (ou classe, vai) em ObjectScript para chamar ao script acima.

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

    }

}

QUARTO: fusionar no IRIS

Por último, com o método MergeExcelFiles no InterSystems IRIS poderíamos fusionar os arquivos Excel.

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

Set outputFile = "merged_output.xlsx"

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

Write "Arquivos fusionados e guardados em: ", result

POR FIM:

Não sei se esse é o jeito mais eficiente ou útil, como digo, sou bastante novata em tratamento de dados. Se conhece algum tutorial para potencializar o uso de Excel nesse sentido, será bem recebido.

Se eu seguir entrando em projetos onde me peçam esse tipo de tarefas, seguirei investigando pouco a pouco. Obrigada!

Discussão (0)1
Entre ou crie uma conta para continuar