none
Erro ao realizar Select Excel ("Não encontra guia") RRS feed

  • Pergunta

  • Boa tarde a todos!

    Estou realizando uma select em um arquivo .xlsx, até ai tudo bem!

    Esse planilha é de um cliente e não posso pedir para o mesmo alterar!

    No caso na minha consulta, não encontra o nome da guia que "Raw Data" mais quando altero a guia para "Raw" funciona perfeitamente!

    Tem alguma maneira de antes de realizar o select na planilha alterar o nome da guia ?

    Desde já muito obrigado!

    terça-feira, 5 de abril de 2016 20:57

Respostas

  • Marcio,

    pedi o método mas não pedi o erro.

    qual o erro que dá?

    Fiz alguns testes aqui e dependendo da connectionString realmente pode dar erro.

    Tenta alterar:

    OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Desktop\Armadores\NmArquivo.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';");

    para

    OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Desktop\Armadores\NmArquivo.xlsx;Extended Properties='Excel 8.0;HDR=YES';");


    Natan

    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:31
    • Não Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:31
    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:32
    quarta-feira, 6 de abril de 2016 16:48
  • Obrigado Natan pelo retorno!

    Quebrei a cabeça fazendo pesquisas, até criei um método para renomear a guia da planilha!

    Quando me deparei depois desse tempo todo, foi que eu coloquei o Data Source apontando para base errada!

    Mais desde já muito obrigado!

    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:32
    quarta-feira, 6 de abril de 2016 17:32

Todas as Respostas

  • Márcio, 

    posta o método que está utilizando.


    Natan

    quarta-feira, 6 de abril de 2016 01:22
  • Bom dia Natan,

    Desculpe a demora para responder!

    Segue meu método de consulta como solicitado!

    public void Carregar()
    {
        OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Desktop\Armadores\NmArquivo.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';");
        OleDbDataAdapter adapter = new OleDbDataAdapter("select distinct [Load Port City],[Shipment Number], count([Shipment Number]) as [TIPOCNTR],'ABC' as [ARMADOR], '70' AS [ARM_ID],'1' AS [CARG_ID],[Contractual Customer Name],[Vessel Name],[Voyage Number],[Place of Receipt City],[Place of Delivery City],[Temperature C],[Contractual Customer Name],SUM([Cargo Gross Weight (Kgs)]) AS [Cargo Gross Weight (Kgs)],[Commodity Name] from [Raw$] group by [Commodity Name],[Place of Delivery City],[Shipment Number],[Load Port City],[Contractual Customer Name],[Vessel Name],[Voyage Number],[Place of Receipt City],[Temperature C],[Contractual Customer Name] having [Load Port City] = 'Santos'    order by [Shipment Number]", conexao);
    
            DataSet ds = new DataSet();
                        
            List<IntegracaoInfo> listaSaida = new List<IntegracaoInfo>();
                        try
                        {
                            conexao.Open();
                            adapter.Fill(ds);
    
                            foreach (DataRow linha in ds.Tables[0].Rows)
                            {
                              
    
                                IntegracaoInfo integracao = new IntegracaoInfo();
    
                                integracao.PORTO_CARREG = Convert.ToString(linha["Load Port City"]);
                                integracao.BKG_NUMERO = Convert.ToString(linha["Shipment Number"]);
                                integracao.ARMADOR = Convert.ToString(linha["ARMADOR"]);
                                integracao.ARM_ID = Convert.ToString(linha["ARM_ID"]);
                                integracao.CLIENTE = Convert.ToString(linha["Contractual Customer Name"]);
                                integracao.NAVIO = Convert.ToString(linha["Vessel Name"]);
                                integracao.VIAGEM = Convert.ToString(linha["Voyage Number"]);
                                integracao.PORTO_DEST = Convert.ToString(linha["Place of Delivery City"]).Split(',').FirstOrDefault();
                                integracao.PORTO_DEST_PAIS = Convert.ToString(linha["Place of Delivery City"]).Split(',').LastOrDefault();
                                integracao.CARG_ID = Convert.ToString(linha["CARG_ID"]);
                                integracao.BKG_TEMP = Convert.ToString(linha["Temperature C"]);
                                integracao.BKG_EXPORTADOR = Convert.ToString(linha["Contractual Customer Name"]);
                                integracao.BKG_GWT = Convert.ToInt32(linha["Cargo Gross Weight (Kgs)"]);                            
                                integracao.TIPOCNTR = Convert.ToString(linha["TIPOCNTR"]);
                                integracao.COMMODITY_NAME = Convert.ToString(linha["Commodity Name"]);
    		                }
    		            }
    					catch (Exception ex)
                        {
                            Console.WriteLine("Erro ao acessar os dados: " + ex.Message);
                        }
                        finally
                        {
                            conexao.Close();
                        }
    }
    
    Desde já Muito Obrigado!

    quarta-feira, 6 de abril de 2016 11:57
  • Marcio,

    pedi o método mas não pedi o erro.

    qual o erro que dá?

    Fiz alguns testes aqui e dependendo da connectionString realmente pode dar erro.

    Tenta alterar:

    OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Desktop\Armadores\NmArquivo.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES';");

    para

    OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\user\Desktop\Armadores\NmArquivo.xlsx;Extended Properties='Excel 8.0;HDR=YES';");


    Natan

    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:31
    • Não Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:31
    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:32
    quarta-feira, 6 de abril de 2016 16:48
  • Obrigado Natan pelo retorno!

    Quebrei a cabeça fazendo pesquisas, até criei um método para renomear a guia da planilha!

    Quando me deparei depois desse tempo todo, foi que eu coloquei o Data Source apontando para base errada!

    Mais desde já muito obrigado!

    • Marcado como Resposta Marcio Camargo quarta-feira, 6 de abril de 2016 17:32
    quarta-feira, 6 de abril de 2016 17:32