SQL Server – Exportando dados para o Excel
Frequentemente precisamos fazer exportações de dados para o excel. É claro que podemos fazer essas exportações utilizando o DTS ou o atual SSIS. Mas que tal fazer a exportação utilizando uma instrução SQL, mais fácil de ser disparada do que os pacotes de exportação ?
A função OpenRowSet permite que sejam feitos acessos a outros bancos de dados mesmo que estes não estejam cadastrados como linked servers. Funciona como um linked server inline.
Desta forma podemos fazer uma exportação para o excel em uma única instrução, veja :
1 2 3 4 | INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\teste.xls;User=Admin;Password=', 'SELECT ID, Empresa FROM [Sheet1$]') SELECT customerid,companyname FROM customers |
Algumas observações :
A planilha do excel (no exemplo teste.xls) tem que já existir com os cabeçalhos de campo, do contrário ocorre um erro
Permissões no diretório temporário do usuário do serviço do sql server/sql server agent são necessárias. Os seguintes links ajudam no caso de ocorrerem erros estranhos : http://support.microsoft.com/kb/814398/en-us e http://support.microsoft.com/kb/296711/EN-US/
Abraços
Tomás Vásquez
http://www.tomasvasquez.com.br

69 Convidados
3 Bots
fevereiro 1st, 2010 at 10:00
Olá, gostaria de saber se há possibilidade de fazer uma instrução sql só que ao invés de exportar para o exel, o próprio importe para o sql. Obrigada.
fevereiro 1st, 2010 at 13:10
Tahbata,
O processo é quase o mesmo, só que ao contrário:
http://support.microsoft.com/kb/321686/pt-br
Abraços
Tomás
maio 13th, 2010 at 18:29
boas,estou a desenvolver uma aplicação windows usando c# e precisava de fazer um export de sql para sql, só que sou novo em c#. você nao tem um exemplo que tenhga a funcionar?
a instrução que tem em cima posso usá-la em code behind? se sim, tenho que usar um OleDbCommand ou OleDbAdapter?
maio 13th, 2010 at 22:25
Luis,
Perfeitamente. No DbCommand, basta definir o CommandText que deseja enviar para o banco de dados, definar o CommandType como Text e utilizar o método Execute.
Não tem erro.
Se precisar de mais alguma ajuda, vamos para o fórum:
http://www.tomasvasquez.com.br/forum
Abraços
Tomás
agosto 16th, 2010 at 20:42
Olá boa noite!!!
Gostaria de motar um programinha sobre cadastro de Operadores de Empilhadeira, os dados que preciso:
Chapa do Operador:
Nome do Operador:
Equipamento: (Empilhadeira ou Paleteira)
Cepi:
Ramal:
Vencimento Atestado:
N CNH:
Vencimento CNH:
Area:
Cargo/Setor:
Turno:
E local para Foto:
Sera que poderia me ajudar? como consigo ?
Grato
agosto 16th, 2010 at 21:47
Seolin,
Se quiser ajuda para montar por conta:
http://www.tomasvasquez.com.br/forum
Se quiser uma prestação de serviço:
webmaster@tomasvasquez.com.br
Abraços
Tomás