Usuário com melhor resposta
acessar planilha excel

Pergunta
-
Senhores, gostaria de acessar atraves do Management Studio uma planilha de excel. Até instalei o excel no servidor porem apresenta erro ao executar o comando:
Select * from openrowset(
'Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database= C:\FaberCode\Importacao\ImportacaoPenDrive(Ze Luis)\CADASTRO_CNPJ_EMPRESAS.xls',
'Select * from [CADASTRO_EMPR_PRIVADAS_TELEFONI]'
)Andei pesquisando, mas não encontrei resultado, em Servidores vinculados não possui em Provider o Microsoft.Jet.OLEDB.4.0, como faço para habilitar ou instalar para que seja apresentado?
abs a todos
Marcelo Nogueira
Respostas
-
Durval,
Sinceramente o Provider ACE no SQL Server 2008, R2 ou 2012 não é o mais indicado por questões do compatibilidade e performance.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
Junior,
Na verdade, o JET está obsoleto e não possui versão 64 bits, o que deprecia sua performance. Como indicado na orientação do MVP Olaf Helper, o Access Database Engine é o substituto deste driver. Veja o post:
O download do pacote também é claro:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
No Blog MSDN, esta citação também é reforçada:
http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx
Não quero desmerecer sua afirmação, principalmente pela sua importância na Comunidade, mas gostaria de mostrar que orientei o Marcelinho com base no conteúdo de grandes profissionais.
Por favor, considere minhas afirmações com o respaldo destes conteúdos.Abraços,
Durval Ramos
Microsoft Partner | MTA - SQL Server 2012
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:41
-
Caro Leandro, talvez não tenha me expressado bem, ao entrar no Management Studio não me aparece o Provider Microsoft.Jet.OLEDB. Apesar de ter instalado o excel na maquina onde o mesmo funciona perfeitamente.
Marcelo Nogueira
Marcelinho,
Para utilizar planilhas Excel, à partir do Office 97, você pode utilizar o ACE.
Faça o download do arquivo pelo link abaixo:
http://www.microsoft.com/en-us/download/details.aspx?id=23734Provavelmente você deverá configurar antes sua instância SQL para poder "ver" o driver. Segue abaixo:
USE [master] GO --CONFIGURANDO À INSTÂNCIA SQL PARA ACEITAR OPÇÕES AVANÇADAS exec sp_configure 'show advanced options', 1 RECONFIGURE exec sp_configure 'Ad Hoc Distributed Queries', 1 RECONFIGURE --ADICIONANDO OS DRIVERS NA INSTÂNCIA EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 GO EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 GO --CONSULTANDO UMA PLANILHA SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' , 'Excel 8.0;Database=C:\Planilhas\Teste.xls;' , 'SELECT * FROM [Plan1$]' );
É importante também verificar se o usuário do servidor SQL possui acesso ao diretório do Windows onde está sua planilha.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 4 de fevereiro de 2014 15:35
- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:42
-
Os drivers Microsoft.Jet.OLEDB não tem suporte nas versões 64 bits do windows, você está rodando isso em um servidor?
Tente usar o driver abaixo:
http://www.microsoft.com/pt-br/download/details.aspx?id=20065
Se não funcionar, poste a versão do SO, SQL server e Office que você está usando incluindo se é 32 ou 64 bits dos três produtos.
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 4 de fevereiro de 2014 15:35
- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:41
Todas as Respostas
-
Eu acredito que seja problema de permissão, o usuário usado para rodar a consulta pode não ter as permissões NTFS necessárias para ler o arquivo.
Se você estiver usando um usuário do computador veja se ele tem permissões no diretório da planilha, se tiver usando um usuário do SQL tente criar um diretório de teste e dar permissão full para todos os usuários.
Obs: Esse comando com o Microsoft.Jet.OLEDB.4.0 e Excel 8.0 só funcionam com planilhas no formato Excel 97 - 2003, para formatos mais novos use Microsoft.ACE.OLEDB.12.0 e Excel 12.0.
-
-
Caro Leandro, talvez não tenha me expressado bem, ao entrar no Management Studio não me aparece o Provider Microsoft.Jet.OLEDB. Apesar de ter instalado o excel na maquina onde o mesmo funciona perfeitamente.
Marcelo Nogueira
Marcelinho,
Para utilizar planilhas Excel, à partir do Office 97, você pode utilizar o ACE.
Faça o download do arquivo pelo link abaixo:
http://www.microsoft.com/en-us/download/details.aspx?id=23734Provavelmente você deverá configurar antes sua instância SQL para poder "ver" o driver. Segue abaixo:
USE [master] GO --CONFIGURANDO À INSTÂNCIA SQL PARA ACEITAR OPÇÕES AVANÇADAS exec sp_configure 'show advanced options', 1 RECONFIGURE exec sp_configure 'Ad Hoc Distributed Queries', 1 RECONFIGURE --ADICIONANDO OS DRIVERS NA INSTÂNCIA EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 GO EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 GO --CONSULTANDO UMA PLANILHA SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' , 'Excel 8.0;Database=C:\Planilhas\Teste.xls;' , 'SELECT * FROM [Plan1$]' );
É importante também verificar se o usuário do servidor SQL possui acesso ao diretório do Windows onde está sua planilha.
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 4 de fevereiro de 2014 15:35
- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:42
-
Os drivers Microsoft.Jet.OLEDB não tem suporte nas versões 64 bits do windows, você está rodando isso em um servidor?
Tente usar o driver abaixo:
http://www.microsoft.com/pt-br/download/details.aspx?id=20065
Se não funcionar, poste a versão do SO, SQL server e Office que você está usando incluindo se é 32 ou 64 bits dos três produtos.
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 4 de fevereiro de 2014 15:35
- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:41
-
Durval,
Sinceramente o Provider ACE no SQL Server 2008, R2 ou 2012 é o mais indicado por questões do compatibilidade e performance.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Editado Junior Galvão - MVPMVP quinta-feira, 6 de fevereiro de 2014 17:39
-
Marcelo,
Você configurou um Linked Server no SQL Server, para que seja possível realizar o acesso aos dados?
Senão realizou, o script abaixo poderá ajudar:
exec sp_addlinkedserver @server = N'OurLinkedServer', @srvproduct=N'Excel', @provider=N'Microsoft.Jet.OLEDB.4.0', @datasrc=N'\\Teste1\Share\DePara_Laboratorio.xls', @provstr=N'Excel 8.0;IMEX=1' EXEC sp_addlinkedsrvlogin 'OurLinkedServer', 'False','Pedro','Dominio\usuario','TEste609' exec sp_testlinkedserver OurLinkedServer -- Or select from it select top 1 * from OurLinkedServer...teste$
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Durval,
Sinceramente o Provider ACE no SQL Server 2008, R2 ou 2012 não é o mais indicado por questões do compatibilidade e performance.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
Junior,
Na verdade, o JET está obsoleto e não possui versão 64 bits, o que deprecia sua performance. Como indicado na orientação do MVP Olaf Helper, o Access Database Engine é o substituto deste driver. Veja o post:
O download do pacote também é claro:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
No Blog MSDN, esta citação também é reforçada:
http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx
Não quero desmerecer sua afirmação, principalmente pela sua importância na Comunidade, mas gostaria de mostrar que orientei o Marcelinho com base no conteúdo de grandes profissionais.
Por favor, considere minhas afirmações com o respaldo destes conteúdos.Abraços,
Durval Ramos
Microsoft Partner | MTA - SQL Server 2012
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Durval RamosModerator segunda-feira, 10 de março de 2014 18:41
-
Durval,
Sem problemas, você esta certo, talvez eu não tenha me atendendo na resposta, mas realmente o JET já esta ultrapassado.
VAleu.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Durval,
Sinceramente o Provider ACE no SQL Server 2008, R2 ou 2012 não é o mais indicado por questões do compatibilidade e performance.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
Junior,
Na verdade, o JET está obsoleto e não possui versão 64 bits, o que deprecia sua performance. Como indicado na orientação do MVP Olaf Helper, o Access Database Engine é o substituto deste driver. Veja o post:
O download do pacote também é claro:
http://www.microsoft.com/en-us/download/details.aspx?id=13255
No Blog MSDN, esta citação também é reforçada:
http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx
Não quero desmerecer sua afirmação, principalmente pela sua importância na Comunidade, mas gostaria de mostrar que orientei o Marcelinho com base no conteúdo de grandes profissionais.
Por favor, considere minhas afirmações com o respaldo destes conteúdos.Abraços,
Durval Ramos
Microsoft Partner | MTA - SQL Server 2012
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"Durval,
Sem problemas, eu me expressei mal no post, pensei uma coisa e escrevi outra.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]