Bio do usuário
404 bio não encontrada
Brazil, SP, São Paulo
Membro desde Maio 20, 2023
Postagens:
Respostas:

Fiz alguns ajustes e agora é possível gerenciar o nome da global, nome do usuário no primeiro nó da global, e também inseri uma validação de conteúdo.

Corrigi a limpeza da global, sintaxe anterior não estava correta.

segue fonte:

/// Importa uma planilha Excel para a global definida no parâmetro do método de classe
/// Parâmetro: caminhoArquivo (Ex: "C:\Temp\dados.xlsx")
/// Exemplo de uso: Do ##class(Ophelos.Tools).LerExcel("C:\Temp\minha_planilha.xlsx",$username,nome da Global, conteudo para validação do arquivo - primeira célula da primeira linha )

ClassMethod ImportaExcel(caminhoArquivo As %String, nomeUsuario As %String, nomeGlobal As %String, conteudoArquivo As %String) [ Language = python ]
{
    import os
    try:
        from openpyxl import load_workbook
        import iris
        # cria variável de transição IRIS x Python
        g_ref = iris.gref(nomeGlobal)         if not os.path.exists(caminhoArquivo):
            g_ref[nomeUsuario] = 'Arquivo Não Encontrado'
            return
        wb = load_workbook(caminhoArquivo, data_only=True)
        ws = wb.active
        
        #limpa a global
        g_ref.kill([nomeUsuario])
        
        count = 0
        for row in ws.iter_rows(min_row=1, values_only=True):
            count += 1             if count == 1:
                primeira_celula = str(row[0]).strip() if row[0] is not None else ""
                if primeira_celula != conteudoArquivo:
                    g_ref[nomeUsuario] = 'Arquivo Não é ' + conteudoArquivo
                    return             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)
            g_ref[nomeUsuario,count] = dados_para_gravar
                
        g_ref[nomeUsuario] = count
    except Exception as e:
        g_ref[nomeUsuario]= 'Erro Execução'
}

Certificações e credenciais da Credly:
Emblemas Global Masters:
Seguidores:
Edilson ainda não tem seguidores.
Seguindo: