Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Importando e Exportando dados de planilhas do Excel

Visualizações: 9.634 views
Tempo de Leitura: 5 minutos

Olá pessoal,
Boa noite!

Nesse post, vou falar sobre um recurso muito interessante do SQL Server e que funciona como um grande diferencial do banco de dados, que é a capacidade de integrar nativamente, com o Excel, permitindo consultar e manipular planilhas através do banco de dados, sem precisar de nenhum outro recurso externo.

Para que isso seja possível, você precisa instalar os drivers OLEDB ACE ou JET para realizar a integração com o Excel. Para saber mais sobre isso, acesse o post SQL Server – Como instalar os drivers Microsoft.ACE.OLEDB.12.0 e Microsoft.Jet.OLEDB.4.0.

Planilha de exemplo que será usada neste post:
SQL Server - How to import data from Excel datasheet to database - Example1

SQL Server - How to import data from Excel datasheet to database - Example2

Importando dados do Excel para o Banco

Como Importar uma planilha do Excel para o SQL Server

A forma mais utilizada com certeza é a leitura de dados de uma planilha do Excel para o banco de dados SQL Server. Para isso, vamos utilizar o OPENROWSET e o driver ACE OLEDB 12.0, uma vez que meu sistema operacional e o meu banco estão na versão 64 bits e utilizando uma planilha do Office 2016 (O plugin JET suporta até a versão 2003).

O comando básico para a leitura é assim:

Exemplo:
SQL Server - How to import data from Excel datasheet to database - Import

Uma outra forma, que deixa essa integração bem mais fácil, é criar uma Stored Procedure para facilitar a utilização dos dados:

E aí você pode utilizar assim:
SQL Server - How to import data from Excel datasheet to database - Import2

Você pode retornar apenas colunas específicas também:
SQL Server - How to import Excel spreadsheet to database4

Ou importar o resultado para uma tabela do banco de dados:
SQL Server - How to import data from Excel datasheet to database - Import3

Exportando dados do banco para o Excel

Como inserir/exportar dados do SQL Server para o Excel

De uma forma muito simples, também é possível inserir dados do nosso banco de dados para uma planilha do Excel. A sintaxe básica é a seguinte:

Exemplo da inserção:
SQL Server - How to insert export data from database to Excel spreadsheet

Exemplo da consulta comprovando que o registro foi inserido:
SQL Server - How to insert export data from database to Excel spreadsheet2

Inserindo a partir de uma tabela:
SQL Server - How to insert export data from database to Excel spreadsheet3

Mais uma vez, podemos utilizar uma Stored Procedure para facilitar as operações durante o dia a dia:

Exemplo de utilização da procedure:
SQL Server - How to insert export data from database to Excel spreadsheet4

Atualizando dados do Excel pelo banco

Como atualizar dados de uma planilha do Excel pelo SQL Server

Assim como as outras operações, é possível também atualizar dados de uma planilha do Excel através do SQL Server. A sintaxe básica é essa:

Exemplo:
SQL Server - How to update data in Excel spreadsheet from database

Exemplo com JOIN utilizando tabelas locais do banco de dados:
SQL Server - How to update data in Excel spreadsheet from database2

Stored Procedure para facilitar o dia a dia:

Função fncQuebra_Texto necessária para utilizar a SP:

Utilização da SP:
SQL Server - How to update data in Excel spreadsheet from database3

Infelizmente, apagar dados de planilhas do Excel pelo SQL Server não é possível. Caso você tente, encontrará essa mensagem de erro:

OLE DB provider “Microsoft.ACE.OLEDB.12.0” for linked server “(null)” returned message “Deleting data in a linked table is not supported by this ISAM.”.
Msg 7345, Level 16, State 1, Line 1

É isso aí, pessoal!
Um abraço e obrigado pela visita.

sql server importar ler exportar atualizar dados de uma planilha do excel para o banco import read export data spreadsheet datasheet

sql server importar ler exportar atualizar dados de uma planilha do excel para o banco import read export data spreadsheet datasheet