Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
girino777
Creator III
Creator III

Carregar Todas as Planilhas Excel de um Diretório

Bom Dia.!

Tenho um Diretório com várias pastas e dentro destas pastas tenho várias planilhas Excel.

Ex:

Diretorio X

Pasta1

Pasta2

Pasta3

Pergunta ? 

Como eu faço para fazer uma carga que me traga apenas as plan2 de todos os arquivos xlsx que estão dentro destas pastas? 

Muito Obrigado.

Renato

1 Solution

Accepted Solutions
girino777
Creator III
Creator III
Author

Não sei se está correto, mas coloquei o meu script conforme abaixo e funcionou..!! 

//Caminho de árvore de diretórios que contém os arquivos a serem lidos

SET vPath = 'C:\MEUS_ARQUIVOS\ARQUIVOS_CLASSIC_DRIVES\Classic';

/*

  Procurando por arquivos para execução manual.

*/

sub QVWDir(Root)

  FOR each vExt in 'xls'

  FOR each vFoundFile in filelist( '$(Root)' & '\*.'& '$(vExt)' )

  Trace >> Arquivo Encontrado: $(vFoundFile);

  LogManual_Atual:

  LOAD

  [@1:n] as NomeArquivoCompleto,

  SubField([@1:n], '\', -1) as NomeArquivo,

  Date(Now(), 'DD/MM/YYYY hh:mm:ss') as DataHoraGeracao

  INLINE '$(vFoundFile)' (fix, no labels);

//------------------------------------------------------------------------------------------------------------------------------------------------------------------

  LOAD

    Text("Numero OS") AS "Numero OS",

    Cliente,

    Equipamento,

    Mod_Cod,

    Serie,

    NF,

    "Data Emissão",

    Entrada,

    "Dados do Equip.",

    "Dados do Conserto",

    Responsável,

    Qtde,

    "Cod. Produto",

    Descrição,

    Série,

    "Entradas Digitais",

    "Saídas Digitais",

    "Entradas Analógicas",

    "Saídas Analógicas",

    "Leitura da Corrente",

    "Variação da Frequencia",

    "Descrição do Defeito",

    "Descrição do Reparo",

    Observações,

    Pó,

    Umidade,

    Oleosidade,

    Oxidação,

    "Danos Mecanicos",

    Parâmetros,

    Parâmetros1,

    Parâmetros2,

    Parâmetros3

    FROM '$(vFoundFile)'

(ooxml, embedded labels, table is Plan2);

//------------------------------------------------------------------------------------------------------------------------------------------------------------------

  NEXT vFoundFile;

  NEXT vExt;

  FOR each Dir in dirlist( '$(Root)' & '\*' )

  call QVWDir('$(Dir)')

  NEXT Dir;

end sub

Call QVWDir('$(vPath)');

View solution in original post

4 Replies
robert_mika
Master III
Master III

girino777
Creator III
Creator III
Author

Peguei este código do Yuri em um post aqui no Fórum.

Ele leu perfeitamente as planilhas do diretório. Mas eu estou com dificuldades em adicioná-lo ao meu script.

//Caminho de árvore de diretórios que contém os arquivos a serem lidos

SET vPath = 'C:\Users\Yuri\Projetos';

/*

  Procurando por arquivos para execução manual.

*/

sub QVWDir(Root)

  FOR each vExt in 'xls'

  FOR each vFoundFile in filelist( '$(Root)' & '\*.'& '$(vExt)' )

  Trace >> Arquivo Encontrado: $(vFoundFile);

  LogManual_Atual:

  LOAD

  [@1:n] as NomeArquivoCompleto,

  SubField([@1:n], '\', -1) as NomeArquivo,

  Date(Now(), 'DD/MM/YYYY hh:mm:ss') as DataHoraGeracao

  INLINE '$(vFoundFile)' (fix, no labels);

  NEXT vFoundFile;

  NEXT vExt;

  FOR each Dir in dirlist( '$(Root)' & '\*' )

  call QVWDir('$(Dir)')

  NEXT Dir;

end sub

Call QVWDir('$(vPath)');

Meu script:

LOAD

    "Numero OS",

    Cliente,

    Equipamento,

    Mod_Cod,

    Serie,

    NF,

    "Data Emissão",

    Entrada,

    "Dados do Equip.",

    "Dados do Conserto",

    Responsável,

    Qtde,

    "Cod. Produto",

    Descrição,

    Série,

    "Entradas Digitais",

    "Saídas Digitais",

    "Entradas Analógicas",

    "Saídas Analógicas",

    "Leitura da Corrente",

    "Variação da Frequencia",

    "Descrição do Defeito",

    "Descrição do Reparo",

    Observações,

    Pó,

    Umidade,

    Oleosidade,

    Oxidação,

    "Danos Mecanicos",

    Parâmetros,

    Parâmetros1,

    Parâmetros2,

    Parâmetros3

FROM C:\MEUS_ARQUIVOS\ARQUIVOS_CLASSIC_DRIVES\Classic\*.xlsx

(ooxml, embedded labels, table is Plan2);

paulovendruscol
Creator
Creator

     Veja se atende:

SET vPath = 'C:\Users\Yuri\Projetos';

/*

  Procurando por arquivos para execução manual.

*/

sub QVWDir(Root)

FOR each vExt in 'xls'

FOR each vFoundFile in filelist( '$(Root)' & '\*.'& '$(vExt)' )

Trace >> Arquivo Encontrado: $(vFoundFile);

TESTE:

LOAD

    "Numero OS",

    Cliente,

    Equipamento,

    Mod_Cod,

    Serie,

    NF,

    "Data Emissão",

    Entrada,

    "Dados do Equip.",

    "Dados do Conserto",

    Responsável,

    Qtde,

    "Cod. Produto",

    Descrição,

    Série,

    "Entradas Digitais",

    "Saídas Digitais",

    "Entradas Analógicas",

    "Saídas Analógicas",

    "Leitura da Corrente",

    "Variação da Frequencia",

    "Descrição do Defeito",

    "Descrição do Reparo",

    Observações,

    Pó,

    Umidade,

    Oleosidade,

    Oxidação,

    "Danos Mecanicos",

    Parâmetros,

    Parâmetros1,

    Parâmetros2,

    Parâmetros3

FROM '$(vFoundFile)'  (ooxml, embedded labels, table is Plan2);

STORE TESTE INTO seudiretorio\TESTE.QVD(QVD);

NEXT vFoundFile;

NEXT vExt;

FOR each Dir in dirlist( '$(Root)' & '\*' )

call QVWDir('$(Dir)')

NEXT Dir;

end sub

Call QVWDir('$(vPath)');

girino777
Creator III
Creator III
Author

Não sei se está correto, mas coloquei o meu script conforme abaixo e funcionou..!! 

//Caminho de árvore de diretórios que contém os arquivos a serem lidos

SET vPath = 'C:\MEUS_ARQUIVOS\ARQUIVOS_CLASSIC_DRIVES\Classic';

/*

  Procurando por arquivos para execução manual.

*/

sub QVWDir(Root)

  FOR each vExt in 'xls'

  FOR each vFoundFile in filelist( '$(Root)' & '\*.'& '$(vExt)' )

  Trace >> Arquivo Encontrado: $(vFoundFile);

  LogManual_Atual:

  LOAD

  [@1:n] as NomeArquivoCompleto,

  SubField([@1:n], '\', -1) as NomeArquivo,

  Date(Now(), 'DD/MM/YYYY hh:mm:ss') as DataHoraGeracao

  INLINE '$(vFoundFile)' (fix, no labels);

//------------------------------------------------------------------------------------------------------------------------------------------------------------------

  LOAD

    Text("Numero OS") AS "Numero OS",

    Cliente,

    Equipamento,

    Mod_Cod,

    Serie,

    NF,

    "Data Emissão",

    Entrada,

    "Dados do Equip.",

    "Dados do Conserto",

    Responsável,

    Qtde,

    "Cod. Produto",

    Descrição,

    Série,

    "Entradas Digitais",

    "Saídas Digitais",

    "Entradas Analógicas",

    "Saídas Analógicas",

    "Leitura da Corrente",

    "Variação da Frequencia",

    "Descrição do Defeito",

    "Descrição do Reparo",

    Observações,

    Pó,

    Umidade,

    Oleosidade,

    Oxidação,

    "Danos Mecanicos",

    Parâmetros,

    Parâmetros1,

    Parâmetros2,

    Parâmetros3

    FROM '$(vFoundFile)'

(ooxml, embedded labels, table is Plan2);

//------------------------------------------------------------------------------------------------------------------------------------------------------------------

  NEXT vFoundFile;

  NEXT vExt;

  FOR each Dir in dirlist( '$(Root)' & '\*' )

  call QVWDir('$(Dir)')

  NEXT Dir;

end sub

Call QVWDir('$(vPath)');