Importando uma planilha Excel no SQL Server

L&A Soluções – Consultoria em Banco de Dados SQL Server ( Suas informações em boas mãos! )

Fonte e direitos autorais de: Site Código Fonte por Ricardo Leme.

O objetivo desse script é importar de uma forma bem simples, uma planilha XLS do Excel para o Banco de Dados.
O procedimento é útil principalmente quando o cliente já possui, por exemplo, uma base de dados legada e a única fonte é uma planilha do Excel.
Para isso, utilizaremos a função OPENROWSET.
Para saber mais: http://msdn.microsoft.com/en-us/library/ms190312.aspx

Script:
— Habilitando as opções avançadas
— Por default e por questões de segurança, essas opções vem desabilitada.
sp_configure ‘show advanced options’, 1
reconfigure
sp_configure ‘Ad Hoc Distributed Queries’, 1
reconfigure

/* Criando a tabela com os meus atributos da planilha */
create table funcionario(
Código INT NOT NULL PRIMARY KEY
,    Nome VARCHAR(100) NOT NULL
,    Admissão SMALLDATETIME NULL
,    Departamento VARCHAR(100) NULL )

/* Comando para importar a planilha na tabela */
INSERT INTO funcionario
SELECT * FROM OPENROWSET (‘Microsoft.Jet.OleDB.4.0’, ‘EXCEL 8.0;Database=F:\departamento.XLS’ ,Dados$)

/* Em Database, deve-se informar o nome da planilha, seguido do nome da “pastinha” + $.
Exemplo: Planilha DEPARTAMENTO.XLS, pasta Dados.*/

–Aí para visualizar, é só dar um SELECT na tabela.
Select * from funcionario

—————————————————————————————————-

Vejam mais em:


Alex Souza

Anúncios

14 comentários em “Importando uma planilha Excel no SQL Server

  1. Meu SQLServer é 64bits, e comigo funcionou assim, após instalar o AccessDatabaseEngine_x64:
    SELECT * FROM OPENROWSET (‘Microsoft.ACE.OLEDB.12.0’, ‘Excel 12.0 Xml;Database=F:\departamento.XLSX’ ,Dados$)

    Detalhe do arquivo Excel: se vc digitar os dados em uma linha e apagar, o OpenRowSet vai considerar esta linha. Para que ele desconsidere esta linha, é necessário excluir a linha da planilha.

  2. Bom dia mestre,

    E quando usamos o mysql não é aceito o codigo

    sp_configure ‘show advanced options’, 1
    reconfigure
    sp_configure ‘Ad Hoc Distributed Queries’, 1
    reconfigure

    como proceder?

    1. Bom dia!
      Esse comando é especifico do SQL Server, no MYSQL deve-se procurar na documentação para verificar comandos semelhantes.

      Valeu e agradeço pela visita ao blog!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s