4 Replies Latest reply: Dec 29, 2015 10:35 AM by Renato Tavares RSS

    Carregar Todas as Planilhas Excel de um Diretório

    Renato Tavares

      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

        • Re: Carregar Todas as Planilhas Excel de um Diretório
          Renato Tavares

          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);

            • Re: Carregar Todas as Planilhas Excel de um Diretório
              Paulo Vendruscolo Bermude

                   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)');
              
              
            • Re: Carregar Todas as Planilhas Excel de um Diretório
              Renato Tavares

              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)');