1
resposta

[Dúvida] Populando o banco de dados

Como faz para inserir valores no banco de dados a partir de uma planilha excel sem precisar inserir dado por dado acrescentando aspas simples e virgulas em cada valor?

Vi que existe um comando pra inserir dados do excel no SQL, mas no caso a planilha está com as colunas fora de ordem. Como pode ser feito isso?

1 resposta

Oii, Isabelly, tudo bem?

Se é por comandos, você pode usar o comando OPENROWSET :)

O OPENROWSET permite que você leia os dados de um arquivo do Excel e use como se fossem uma tabela do SQL Server. Para especificar as colunas que você deseja importar, você pode usar a cláusula SELECT dentro do OPENROWSET.

Um exemplo sobre abaixo:

INSERT INTO sua_tabela
SELECT coluna1, coluna2, coluna3
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0; Database=caminho_para_seu_arquivo_excel; HDR=YES; IMEX=1',
    'SELECT colunaExcel1, colunaExcel2, colunaExcel3 FROM [nome_da_planilha$]')

Nesse exemplo, sua_tabela é a tabela na qual você deseja inserir os dados, coluna1, coluna2, coluna3 são as colunas da sua tabela. Já caminho_para_seu_arquivo_excel é o caminho completo para o arquivo do Excel que você deseja importar, colunaExcel1, colunaExcel2, colunaExcel3 são as colunas do Excel que você deseja importar, e nome_da_planilha é o nome da planilha do Excel que contém os dados.

O Microsoft.ACE.OLEDB.12.0 é o tipo de provedor OLE DB que está no seu SQL Server e o Excel 12.0 a versão do Excel. Já o HDR=YES indica que a primeira linha do arquivo do Excel contém os nomes das colunas e o IMEX=1 a configuração para importar/exportar dados.

Você pode ler mais na documentação oficial, neste link.

Se outra dúvida surgir, estamos aqui.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.