Artigo
· 7 hr atrás 3min de leitura

importação direta arquivo excel para global

Pessoal, a quem interessar possa.....

Desenvolvi uma Classe utilizando o python para ler um arquivo excel e gravar o conteúdo em global. Vejam como ficou: (fiquem a vontade para melhorias ou ajustes)

Class Utils.Importador Extends %RegisteredObject
{ /// Importa uma planilha Excel para a global ^ExcelData
/// Parâmetro: caminhoArquivo (Ex: "C:\Temp\dados.xlsx")
/// Exemplo de uso: Do ##class(Utils.Importador).LerExcel("C:\Temp\minha_planilha.xlsx",$username)
ClassMethod LerExcel(caminhoArquivo As %String, nomeUsuario As %String) [ Language = python ]
{
    import os
    try:
        from openpyxl import load_workbook
        import iris         if not os.path.exists(caminhoArquivo):
            print(f"ERRO: Arquivo não encontrado: {caminhoArquivo}")
            return         print(f"\n--- Lendo arquivo: {caminhoArquivo} ---")
        
        wb = load_workbook(caminhoArquivo, data_only=True)
        ws = wb.active
         
        
        # Limpa global
        g_ref = iris.gref('^ExcelData')
        del g_ref[nomeUsuario]
        
        count = 0
        for row in ws.iter_rows(min_row=2, values_only=True):
            count += 1
            lista_dados = []
            for celula in row:
                if celula is None:
                    lista_dados.append("")
                else:
                    lista_dados.append(str(celula))
            
            dados_para_gravar = "|".join(lista_dados)             if count == 1:
                print(f"Gravando (formato string IRIS): {dados_para_gravar}")
            g_ref[nomeUsuario,count] = dados_para_gravar
                
        print(f"Sucesso! {count} linhas gravadas em ^ExcelData.")     except Exception as e:
        print(f"ERRO: {e}")
} }
 

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