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

Fonte: http://www.bufaloinfo.com.br/

Comentários

comentários

6 thoughts on “SQL Server – Exportando dados para o Excel”

  1. 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.

  2. 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?

  3. 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

Comments are closed.