4 Replies Latest reply: Sep 5, 2016 9:21 AM by mauro ponte RSS

    Ler o nome das sheets de um Doc Excel.

    MARCIEL MALTA SILVA

      Boa noite senhores.

       

      Tenho uma planilha excel com varias sheets, uma para cada mês do ano, ex: Janeiro, Fevereiro.

      Como poderia ler esses nomes e incluir como um campo na minha tabela?
      Ou somente ler todas as sheets sem saber o nome delas?

       

       

      Assim eu consigo ler, porem teria que ter um padrão numérico.

       

      LET vStartSheetNumber = 1;

      LET vEndSheetNumber = 4;

      LET vExcelFileName = 'C:\Users\Malta\Desktop\Nova pasta\Planilha do Microsoft Excel.xlsx';

       

      FOR index = vStartSheetNumber TO vEndSheetNumber

           LOAD valor

           FROM $(vExcelFileName)

           (ooxml, embedded labels, table is Plan$(index));

      NEXT

        • Re: Ler o nome das sheets de um Doc Excel.
          Yuri Nicolett

          Você pode fazer uma conexão ODBC em sua planilha e descobrir o nome de todas as abas, seria mais ou menos desta forma:

           

          LET vPlanilha = 'C:\Planilha.xls';

           

           

          ODBC CONNECT32 TO [Excel Files;DBQ=$(vPlanilha)];

           

           

           

           

          //Retornando todas as informações da planilha e colocando dentro da tabela tables

          tables:

          SQLtables;

           

           

          DISCONNECT;

           

           

          //Para cada aba da planilha, faço a leitura dos dados

          FOR i = 0 to NoOfRows('tables')-1

           

           

            LET sheetName = peek('TABLE_NAME', i, 'tables');

           

            TRACE $(sheetName);

           

            //Removo as abas que contém o Print_Area em seu nome

            IF WILDMATCH('$(sheetName)', '*Print_Area*')=0 THEN

           

            SET ErrorMode = 0;

           

            Planilha:

            LOAD

            '$(sheetName)' as NomeAba,

            *

            FROM $(vPlanilha) (biff, embedded labels, table is [$(sheetName)]);

           

           

           

            END IF 

          NEXT i //Próxima aba

           

           

          DROP TABLE tables;