Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
marcelvinicius
Contributor III

Buscar linha de Excel

Boa tarde comunidade,

Tenho o seguinte problema:

Tem varias planilhas em excel,e de cada uma quero buscar a informação contida na primeira linha, porém estou conseguindo buscar somente da primeira planilha e não das demais.

Alguém pode auxiliar?

Qlik Sense.

Atenciosamente

Tags (1)
1 Solution

Accepted Solutions
mario_sergio_ti
Valued Contributor

Re: Buscar linha de Excel

Marcel, faça o Left Join depois;

A solução do afurtado‌ provavelmente vai dar certo também, sem precisar utilizar o For... Se fizer o Left Join depois...

Exemplo:

Tabelas:

LOAD Distinct

  FileName()    as Tabelas

  FROM [lib://Realizado/DEF Caminhões*.xls]

(biff, no labels, table is Novos$);

LET vQtdArquito = FieldValueCount('Tabelas');

For vCiclo = 1 to vQtdArquito

  LET vNomeTabela = FieldValue('Tabelas',vCiclo);

  Tabela_Base:

  First 1

  LOAD

   @1 AS Empresa,

   FileName()    as NomeArquivo

FROM [lib://Realizado/$(vNomeTabela)]

(biff, no labels, table is Novos$);

Next

LEFT JOIN(Realizado_aux)

NoConcatenate

Load * Resident Tabela_Base;

Drop Tables Tabelas,Tabela_Base;

14 Replies
lucianoapgarcia
New Contributor III

Re: Buscar linha de Excel

Já tentou "navegar" entre as abas, conectado ao SQLtables do arquivo Excel ?:

Loading Multiple Excel Sheets Dynamically along with file name and sheet name

No QView é perfeitamente possível esse código (eu já usei, inclusive)...No Sense eu não sei se haveria alguma dificuldade devido ao uso de Libs na conexão (talvez com alguma adaptação do código funcione).

lucianoapgarcia
New Contributor III

Re: Buscar linha de Excel

Tem caso de sucesso relatado, habilitando o "Legacy Mode" no Sense:

Qlik Sense - Loop through Excel Files and Worksheets

MVP
MVP

Re: Buscar linha de Excel

Marcel,

fiz um exemplo lendo 3 XLS com uma coluna e algumas linhas e li usando o script abaixo


Tabela:

first 1

LOAD

    Coluna1,

    FileName()    as NomeArquivo

FROM [lib://XLS/Coluna*.xlsx] (ooxml, embedded labels, table is Sheet1);

Segue resultado e os XLS

Qlik Sense Desktop---2018-02-27 21_57_24.png

Qlik Sense Desktop---2018-02-27 21_57_11.png

Coluna3.xlsx - Excel---2018-02-27 21_59_11.png

lucianoapgarcia
New Contributor III

Re: Buscar linha de Excel

Marcel, olá!

Se alguma das soluções apresentadas tiver sido útil para você resolver o problema, por favor, não​ esqueça de fechar a thread escolhendo uma para marcar como "Correta" e marcando aquelas respostas que lhe foram úteis com a flag "Útil".

Manual do usuário | Como criar e gerir minhas perguntas?

Grande abço!

marcelvinicius
Contributor III

Re: Buscar linha de  Excel

Bom dia Luciano,

Estou testando, por isso não marquei nada ainda, assim que eu testar tudo te aviso.

Atenciosamente.

marcelvinicius
Contributor III

Re: Buscar linha de  Excel

Bom dia afurtado

Utilizei conforme você mencionou, mas ainda busca somente o primeiro nome, dos demais não.

Atenciosamente

mario_sergio_ti
Valued Contributor

Re: Buscar linha de  Excel

Marcel, bom dia;

Tente utilizar esta lógica.

Só ajuste o nome das tabelas e campos para o seu modelo.

MVP
MVP

Re: Buscar linha de  Excel

perceba que uso um * no nome, assim pega todos os arquivos

marcelvinicius
Contributor III

Re: Buscar linha de Excel

Amigo mario.sergio.ti

Não funcionou.

Estou fazendo um join de informações com outra tabela, será que é por isso?

Tabelas:

LOAD Distinct

    FileName()    as Tabelas

  FROM [lib://Realizado/DEF Caminhões*.xls]

(biff, no labels, table is Novos$);

LET vQtdArquito = FieldValueCount('Tabelas');

For vCiclo = 1 to vQtdArquito

LET vNomeTabela = FieldValue('Tabelas',vCiclo);

LEFT JOIN(Realizado_aux)

  Tabela_Base:

  First 1

  LOAD

    @1 AS Empresa,

    FileName()    as NomeArquivo

  FROM [lib://Realizado/$(vNomeTabela)]

(biff, no labels, table is Novos$);

 

Next

Drop Table Tabelas;