jueves, 20 de enero de 2011

Exportar datos a Excel de forma fácil! T-SQL

Por lo general cuando necesitamos exportar una serie de datos desde una tabla o grilla de resultados hacemos un copy&paste o en su defecto usamos el tipico wizzard que trae el manager, pero... y si lo queremos hacer de forma automática??

Siguiendo con mi lógica de hacer las cosas directo por consulta, (o evitar usar asistentes), hoy vamos a ver la forma más sencilla que existe para crear un archivo excel y poblarlo con datos a partir de una consulta o la ejecución de un procedimiento almacenado.


Primero a la introducción: para hacernos la vida más sencilla, utilizaremos un procedimiento de sistema llamado "sp_makewebtask", el cual nos permitirá crear por completo el archivo resultante, donde para el caso del ejemplo un archivo .xls con un formato simple.

Lo primero que debemos tener en consideración es si está habilitado el uso de "Web Assistant Procedures". en caso de que no lo esté, para habilitarlo se debe ejecutar lo siguiente:


sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Web Assistant Procedures', 1;
GO
RECONFIGURE
GO

Una vez habilitado, pasamos a la sencilla instrucción para crear nuestro archivo.


EXEC sp_makewebtask 
@outputfile = 'c:\Archivo.xls', --Corresponde al nombre del archivo y al nombre de la pestaña.
@query = 'exec Tarificador..getFullTraficDataNP', --query o procedimiento con los datos a poblar.
@colheaders =1,  --Indica que se incluirán los nombres de las columnas.
@FixedFont=0, --Indica que eligirá la fuente más apropiada para los tipos de datos.
@lastupdated=0, --Indica que no incluirá un stamp con la fecha de creación.
@resultstitle='Archivo de Trafico' --Título que tendrá el archivo.

Y listo!!! la forma más rápida y efectiva que conozco para generar archivos .xls sin usar asistente o SSIS. Adicionalmente les cuento que el procedimiento se puede utilizar para un sin fin de cosas, por lo que les recomiendo que le peguen una mirada.

No hay comentarios:

Publicar un comentario