Descrição:
Como exportar uma tabela do SQL Server para o Excel?
Solução:
Para isto, siga estes procedimentos:
1. Crie uma planilha cuja primeira linha será o cabeçalho para suas colunas.
2. Crie uma Consulta no Elipse E3, executando o método OPENROWSET do SQL para abrir uma conexão com planilha Excel desejada. Depois, utilize o método SELECT para selecionar as colunas da tabela. Exemplo:
INSERT INTO OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; DATABASE=E:\RelatorioNiveis.xlsx;', 'SELECT Data, Nivel1, Nivel2 FROM [Plan1$]') SELECT E3TimeStamp, Nivel1, Nivel2 FROM Niveis
Se o Servidor não estiver configurado para permitir a execução de consultas do tipo AD Hoc, o seguinte erro de acesso pode ser gerado: “SQL Server blocked access to STATEMENT ‘OpenRowset/OpenDatasource’ of component ‘Ad Hoc Distributed Queries’… “. Para solucionar este problema, é necessário executar o código abaixo em uma consulta no Studio do SQL Server:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;
Caso seja gerado o erro informando que não foi possível criar uma instância do servidor OLE DB 12 para o servidor vinculado, será necessário baixar o aplicativo AccessDatabaseEngine.exe, que contém o driver Microsoft.ACE.OLEDB.12.0.
Se o problema ainda persistir, execute o código abaixo em uma consulta no Studio do SQL Server:
USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',N'DynamicParameters', 1 GO
Obs.: Esse exemplo foi desenvolvido com o SQL Server Express 2008 R2 e o Microsoft Excel 2010.