DataTable to Excel con un control DataGrid

Dejo código con otra opción para exportar datos de un DataTable a un archivo Excel.

Resulta que el Excel es capaz de reconocer código html de una tabla, y eso es precisamente lo que genera el control DataGrid.

Este método no me gusta demasiado porque implica referenciar el espacio de nombres System.Web, y si estamos en una aplicación de escritorio, no me parece demasiado elegante. Supongo que en una aplicación Web, se notaría menos, pero un control es para lo que es, y si empezamos a usar cosas para lo que no son es cuando aparecen los problemas.

Esto mismo se podría hacer usando simplemente un objeto HtmlWriter, pero el código quedaría bastante más complejo que este.

 

image

 

Una de las ventajas de este método es la posibilidad de añadir estilos dinámicamente, por ejemplo usando un fichero css como este:

 

image

 

Habría que añadir unas cuantas líneas más al método anterior, para inyectar el contenido del css al html generado.

Esta alternativa abre la posibilidad de tener varios formatos de exportación, definidos en distintos archivos css, y un único método para realizar la exportación.

 

image

 

Una de las desventajas de esta método podría ser el rendimiento. El volumen de información generado es bastante alto, y ante un número elevado de filas y de columnas, el rendimiento se resiente.

Este sería el contenido del texto generado, para un DataTable con dos filas y dos columnas

image

Abriéndolo con el Excel:

image

Sé que funciona con el Excel 2003 y posteriores, pero sospecho, aunque no estoy seguro, de que también lo reconoce el Excel 2000.

 

También se puede exportar a Excel, usando el formato Office Xml.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *