2012-01-05 83 views
6

¿Cómo puedo exportar a un libro de Excel desde un procedimiento almacenado a varias hojas con pocas instrucciones SQL?Procedimiento almacenado de SQL Server exportar a libro de Excel con varias hojas

actualmente estoy usando la siguiente declaración:

EXEC proc_generate__excel 'db', 'temp',@filename, @SeqNo, @ext, @sqlorder 

Se va a crear tres libros de Excel, si hay tres instrucción SQL.

¿Cómo puedo exportar datos de tres declaraciones SQL a tres hojas en un libro de Excel?

Respuesta

7
  1. Crear un archivo de Excel vacío con las hojas en que usted necesita (mi ejemplo Sales.xls con sábanas "Sheet1", "Hoja2") Archivo

  2. vacío de la copia a la ubicación deseada/Nombre

  3. Usando su instrucción de selección para obtener la información deseada para la hoja1; insertar los datos en el archivo de Excel:

    insert into OPENROWSET(
        'Microsoft.Jet.OLEDB.4.0', 
        'Excel 8.0;Database=d:\export\sales.xls;;HDR=YES', 
        'SELECT * FROM [Sheet1$]') 
    select * from sales_part1 
    
  4. Uso de la instrucción de selección para obtener la información deseada para la hoja 2; insertar los datos en el archivo de Excel:

    insert into OPENROWSET(
        'Microsoft.Jet.OLEDB.4.0', 
        'Excel 8.0;Database=d:\export\sales.xls;;HDR=YES', 
        'SELECT * FROM [Sheet2$]') 
    select * from sales_part2 
    

comprobar estos enlaces para referencia:
http://www.sqlservercentral.com/Forums/Topic487837-19-1.aspx
http://www.sqlservercentral.com/Forums/Topic660148-338-1.aspx
http://www.databasejournal.com/features/mssql/article.php/10894_3331881_1

Algunos hilos SO:
SQL Server export to Excel with OPENROWSET
error on sql script with 'openrowset'

+0

No funciona en Windows 7 de 64 bits. No es flexible, porque depende de Microsoft.Jet.OLEDB.4.0. – kelvinfix

+0

revise su versión ms office instalada ... y use su cadena de conexión (versión oledb) según la redistribución de conectividad de la oficina –

+0

revise estos [enlace] (http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536 -8C28-4598-9B72-EF94E038C891 & displaylang = en) y se relaciona con la información relacionada ... no es para informarle acerca de la cadena de conexión ... solo para decirle que use la especificación compatible con Office en su openrowset ... espero que esto lo ayude según su plataforma versión. –

Cuestiones relacionadas