Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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)');
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);
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)');
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)');