Exportar datos a Excel con ExcelLibrary en ASP.NET

La funcionalidad de un sistema de poder exportar datos a distintos formatos es algo de lo mas cotidiano, y que viene por defecto en cualquier requerimiento de cliente. Quizás uno de los formatos mas solicitados sea en hojas de cálculo, principalmente en Excel. Y es que si bien existen infinidad de formas de realizar esto, nunca está de más echar mano de una librería que facilite ésta tarea. Por eso les traigo éste nuevo tutorial, que espero pueda convertirse en una serie de tutoriales con la misma mecánica, sobre cómo exportar datos a Excel en ASP.NET de manera fácil... realmente fácil.







Importando la librería de Excel
Lo primero que tenemos que hacer es descargarnos la librería de Excel desde el siguiente enlace: ExcelLibrary. Nos descargará un zip y solo tendremos que descomprimirlo para obtener el archivo .dll.


A continuación nos iremos a nuestro proyecto, y en el explorador de soluciones damos click derecho sobre la carpeta References y seleccionamos Agregar Referencia.


En la ventana que aparece nos vamos a la pestaña de Examinar y buscamos la ruta donde descomprimimos nuestra librería. 

La seleccionamos, damos Aceptar y ya tendremos la librería importada y lista para usar en nuestro proyecto.



Hidratando el objeto DataSet


Ahora si, al código. Lo primero que necesitamos es un conjunto de datos, para éste ejemplo usaré un DataSet, el cuál contendrá los datos a exportar. Aunque el objetivo de éste tutorial es mostrar la manera de exportar datos a Excel y no de cómo cargarle datos a un DataSet, de igual manera lo mostraremos para cubrir todo el proceso.


Existen muchas maneras de cargar datos dentro de un DataSet, aunque la mas obvia es a través de una base de datos, así que empecemos. Crearemos una clase llamada getDataSet que retornará un objeto DataSet, el cuál sera nuestro objeto hidratado con la información de la BD.




La clase básicamente lo que hace es crear una query que recoge todos los datos de la tabla Expediente, y utiliza un objeto SqlDataAdapter para llenar nuestro DataSet a retornar. No olviden atrapar la excepción y siempre finalizar cerrando la conexión si esta sigue abierta.


Lo siguiente es crear un método donde llenaremos un GridView a partir de un DataSet, que será el mismo objeto que obtengamos de getDataSet.




Ahora en nuestra página .aspx crearemos el GridView donde se mostrarán los datos.






Ahora crearemos un botón (yo le llame btnConsultar) y en su evento Click crearemos un objeto DataSet llamado myDataSet, el cual será hidratado por nuestro método getDataSet que creamos anteriormente, para posteriormente mostrarlo en el grid.




Ahora en nuestro grid ya debemos poder visualizar los datos que nos devolvió la consulta.




Ahora creamos otro botón que será quien desencadene el evento para exportar nuestros datos a Excel. Dentro de éste crearemos un nuevo objeto DataSet y lo hidrataremos de igual manera que cuando ejecutamos la consulta. Este objeto myDataSet lo enviamos al método exportarAExcel de nuestra clase ReporteServices que en seguida les explicaré como funciona.




Exportando a Excel

La clase ReporteServices, nos servirá para manejar todas las peticiones de reportes y exportación de datos, es decir cuando queramos agregar otros formatos para exportar lo haremos dentro de ésta clase. Dentro de ella colocaremos nuestro método para exportar a Excel, el cuál recibirá como parámetros una cadena que indique la ruta y nombre de nuestra hoja de cálculo (que se la enviamos desde el evento del botón como C:reporte.xls y el objeto DataSet a exportar.




Como pueden ver lo único que tenemos que hacer es llamar a la clase DataSetHelper y al método CreateWorkbook que recibe el path de la hoja de cálculo y el DataSet.



¡Y Listo! Al dar click en el botón de exportar tendremos nuestro archivo reporte.xls generado en el directorio que especificamos. Como ven para poder crear una hoja de cálculo en Excel con nuestra información de BD únicamente hicimos uso de una sola línea de código en nuestra clase ReporteServices.





NOTA: Recuerden que los nombres de las columnas devueltas por la consulta en BD deben mapearse correctamente con los DataField de las columnas del Grid.



Saludos y hasta la próxima.
Exportar datos a Excel con ExcelLibrary en ASP.NET
0 Puntos Score: 0/10
Visitas: 1476 Favoritos: 7
2 Comentarios Exportar datos a Excel con ExcelLibrary en ASP.NET
Excelente, otro componente para mi colecci?
Gracias por tu comentario @KeimSys. Saludos y ?
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!