none
Lendo Tabela Excel RRS feed

  • Pergunta

  • Boa tarde pessoal 

    Eu tenho uma tabela em excel, e preciso importar as informações dessa tabela para uma tabela no SQL Server. Como eu posso está fazendo essa query?

    Garibaldo

    segunda-feira, 10 de julho de 2017 16:57

Respostas

Todas as Respostas

  • Encontrei esse artigo aqui que explica detalhadamente

    https://blogfabiano.com/2008/04/22/ler-dados-de-um-arquivo-excel/

    http://www.devmedia.com.br/trabalhando-com-planilhas-do-excel-e-arquivos-texto-no-sql-server/6340


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    segunda-feira, 10 de julho de 2017 17:22
  • Wesley boa tarde,

    Veja se você pode me ajudar. A minha tabela SQL Server possui vários colunas. A minha Planilha Excel possui apenas 3 colunas. Eu preciso pegar essas 3 colunas da planilha Excel e colocá-las em suas devidas colunas na minha tabela SQL Server, tem Como?

    Garibaldo

    segunda-feira, 10 de julho de 2017 17:43
  • Esquarteja por partes 

    1º crie uma tabela no banco de dados com as colunas referentes ao seu excel

    2º faça o procedimento para inserir nessa tabela

    3º apos esses 3 campos estiverem na tabela  vc pode fazer update na tabela que vc deseja.

    4º apos isso vc faz um drop ta tabela criada


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves



    • Editado Wesley Neves segunda-feira, 10 de julho de 2017 17:52 complemento
    segunda-feira, 10 de julho de 2017 17:51
  • Wesley me desculpe,

    Você teria algum exemplo que possa está me passando, é que eu conheço pouco do SQL, estou aprendendo a pouco tempo.

    Garibaldo

    segunda-feira, 10 de julho de 2017 17:55
  • EXEC sp_configure 'show advanced options',1
    GO
    reconfigure with override
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries',1
    GO
    reconfigure with override
    GO
    
    CREATE TABLE DadosTemporarios
    (
     ColoqueONomeDoCampo1 VARCHAR(100),
     ColoqueONomeDoCampo2 VARCHAR(100),
     ColoqueONomeDoCampo3 VARCHAR(100),
    )
    
    
    SELECT * INTO DadosTemporarios FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
     
    'Excel 8.0;Database=c:CAD.xls',
     
    'SELECT * FROM [NomeDaPlanilha$]')
    

    algo semelhante a isso


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    Esse link aqui em baixo tem um passo a passo

    http://t-sql.com.br/category/importacoes/importar-excel/

    • Editado Wesley Neves segunda-feira, 10 de julho de 2017 18:03 complemento
    segunda-feira, 10 de julho de 2017 18:02
  • Não funcionou

    está dando esse erro.

    Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
    Configuration option 'Ad Hoc Distributed Queries' changed from 1 to 1. Run the RECONFIGURE statement to install.
    OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "O mecanismo de banco de dados do Microsoft Access não pôde encontrar o objeto 'Nilpan$'. Verifique se o objeto existe e se você digitou o nome e o caminho corretamente. Se 'Nilpan$' não for um objeto local, verifique a conexão de rede ou contate o administrador do servidor.".
    Msg 7350, Level 16, State 2, Line 10
    Cannot get the column information from OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

    segunda-feira, 10 de julho de 2017 19:47
  • Me parece que vc tem que registrar  o OLEDB para seu linked server

    não tenho certeza que isso vai resolver  achei seu erro aqui 

    https://social.msdn.microsoft.com/Forums/pt-BR/bb2dc720-f8f9-4b93-b5d1-cfb4f8a8b1cb/the-ole-db-provider-microsoftaceoledb120-for-linked-server-null-reported-an-error-access?forum=sqldataaccess 

    e essa e a resposta do fórum , porem não testei no meu ambiente

    USE [master]
    GO
    
    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
    
    


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    segunda-feira, 10 de julho de 2017 20:21
  • Wealey está dando esse erro;

    Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
    Configuration option 'Ad Hoc Distributed Queries' changed from 1 to 1. Run the RECONFIGURE statement to install.
    OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Erro não especificado".
    Msg 7303, Level 16, State 1, Line 2
    Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

    segunda-feira, 10 de julho de 2017 20:31
  • Pelo que entendi desses dois artigos

    que merem uma leitura detalhada 

    https://www.excel-sql-server.com/excel-import-to-sql-server-using-distributed-queries.htm

    http://blog.hoegaerden.be/2010/03/29/retrieving-data-from-excel/

    vc não tem instalado o drive OLE DB componente usado pra integrar com excel

    essas DLLS ficam por padrão geralmente na pasta 

    C:\Program Files\Common Files\System\Ole DB

    seque o link pra download os componentes 

    https://www.microsoft.com/pt-br/download/details.aspx?id=20065

    vc já tentou importar usando  o assistente Import Data do sql server ???


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    terça-feira, 11 de julho de 2017 12:32
  • Bom dia

    Ja tentou com o "SQL Server Import and Export Data" ?????

    terça-feira, 11 de julho de 2017 13:34
  • Ainda não trabalhei com essa ferramenta

    Garibaldo

    quarta-feira, 12 de julho de 2017 00:55
  • Wesley, a minha query ficou assim: consegue ver algum erro?
    USE GLTRANSP
    GO
    
    EXEC sp_configure 'show advanced options',1
    GO
    reconfigure with override
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries',1
    GO
    reconfigure with override
    GO
    
    EXEC GLTRANSP . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
    
    EXEC GLTRANSP . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GO
    
    SELECT * INTO tbProdutos1 FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
     
    'Excel 8.0;Database=c:\NFe\Nilpan.xls',
     
    'SELECT * FROM [Plan1$]')
    

    quarta-feira, 12 de julho de 2017 01:03
  • da uma olhada  no seu banco de dados se está instalado 

    USE master EXEC sp_configure 'show advanced options',1 GO reconfigure with override GO EXEC sp_configure 'Ad Hoc Distributed Queries',1 GO reconfigure with override GO 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 USE TSQL2012 GO -- utilizando OPENROWSET --Nome Da Planilha -- Nome da aba do excel SELECT * INTO DadosTemporariosOPENROWSET FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\NFe\Results.xlsx', [Aba1$]) --- Utilizando OPENDATASOURCE --Nome Da Planilha -- Nome da aba do excel SELECT * INTO DadosTemporariosOPENDATASOURCE FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\NFe\Results.xlsx;Extended Properties=Excel 12.0')...[Aba1$]


    Minha query funciona das duas formas

    alem disso achei um post do mestre @Dirceu Resende com um passo a passo bem detalhado

    https://www.dirceuresende.com/blog/sql-server-como-instalar-os-drivers-microsoft-ace-oledb-12-0-e-microsoft-jet-oledb-4-0/


    Wesley Neves

    quarta-feira, 12 de julho de 2017 12:24
  • Boa tarde,

    clica com botão direito no banco que a tabela existe, depois em task e depois em import data. Abrirá um assistente de importação de dados bem simples de ser utilizado.

    Se for importar mais de uma vez você pode salvar o pacote para executar novamente quando quiser.




    Vinicius Fonseca
    MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation
    CBD CONSULTORIA

    sexta-feira, 14 de julho de 2017 17:25
  • Wesley, eu verifique e  está instalado Microsoft.ACE.OLEDB.12.0

    Garibaldo

    domingo, 16 de julho de 2017 22:09
  • Deleted
    segunda-feira, 17 de julho de 2017 12:06
  • Boa tarde José Diz, ei fiz dessa forma e continua dando o erro

    EXECUTE sp_configure 'show advanced options', 1
    reconfigure with override
    go
    
    EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1
    reconfigure with override
    go
    
    
    EXECUTE GLTRANSP . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
    
    EXECUTE GLTRANSP . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GO
    
    INSERT into tbProdutos1 (Codigo_Produto1, Descricao_Produto1, Peso_Produto1, Ipi_Produto1, Clas_FiscalProduto1)
      SELECT Codigo, Nome, Peso, Ipi, Clas_fiscal
      from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=c:\NFe\Nilpan.xls', '[Plan1$]') as P;
    
    

    terça-feira, 18 de julho de 2017 17:19
  • Posta  o Erro  por favor

    Wesley Neves

    Ja tentou usando o menu TASK ??
    • Editado Wesley Neves terça-feira, 18 de julho de 2017 18:15 complemento
    terça-feira, 18 de julho de 2017 18:15
  • Deleted
    terça-feira, 18 de julho de 2017 22:20
  • Boa tarde,

    Por falta de retorno, essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 21 de julho de 2017 20:35
    Moderador