Dejo este snippet, por si a alguno le puede servir.
Es una manera más de exportar un DataTable, o un DataSet a un fichero Excel, pero esta vez usando el formato Office Xml.
Wikipedia: http://es.wikipedia.org/wiki/Microsoft_Office_XML
Los formatos Microsoft Office XML (no confundir con Office Open XML) son formatos de documento basados en XML (o lenguajes de esquema XML) introducidos en versiones de Microsoft Office anteriores a Office 2007. En Microsoft Office XP se introdujo un nuevo formato XML para almacenar hojas de cálculo de Excel y Office 2003 añadió formatos basados en XML para documentos de Word.
Estos formatos fueron reemplazados por la especificación Office Open XML (ECMA-376) en Microsoft Office 2007.
El formato Excel xml tiene más o menos la siguiente apariencia:
Una de las ventajas de este formato, es la posibilidad de incluir formatos (valga la redundancia), fórmulas, etc. y que son reconocidos desde la versión 2003.
Más información acerca del formato: http://msdn.microsoft.com/en-us/library/aa140066%28office.10%29.aspx
Una exportación sencilla, no tiene ninguna complicación, pero so quisiéramos añadir ciertas complejidades, hay mucho código que escribir.
Por eso, me he apoyado en esta librería que proporciona un modelo de objetos bastante sencillo, que permite centrarse en la información a generar, y delegar el “renderizado” del documento xml.
http://excelexportlib.codeplex.com/
Traducción: ExcelExportLib es una librería de exportación simple que crea un archivo .xml. Este archivo puede ser abierto en Excel. Al contrario que los archivos csv, este formato contiene información de formato. La principal ventaja del proyecto es que permite la exportación de datos en Excel sin necesidad de ejecutar Excel.
A mí lo que me gustó de la librería es lo sencillita que es. Simple, pero potente.
Un ejemplo:
Bueno, y finalmente el snippet.
Por supuesto, al Excel generado se le pueden añadir todo tipo de formatos, fórmulas, totales, etc.
Y allí donde ExcelExportLib no llegue, siempre se puede añadir funcionalidad propia.
Normalmente para saber cómo se traduce a xml una característica del documento Excel, por ejemplo una fórmula, un formato, etc., se pueden consultar las especificaciones, pero lo más sencillo suele ser generar un documento con la características en cuestión, guardar el archivo en formato xml y ver el resultado.
Por ejemplo, ¿cómo se especifica la característica de formato condicional?
Guardamos el documento en formato xml….
Y abrimos el resultado con un editor de texto, o uno xml.
PD: No suelo pegar el código, por un trauma personal. He sufrido el copy-pasteado de mucha gente, y la verdad es que no se lo deseo a nadie. Por eso pongo la imagen, y que cada uno escriba su propio código. Perdón por los inconvenientes ocasionados. 😉
Dejo código con otra opción para exportar datos de un DataTable a un archivo Excel. Resulta
Excelente post!
Gracias por compartir,
Te agradeceriamos que si vas a compartir pongas el código, pues que caso tiene poner una imagen?
Si te lo copian no pasa nada, el sol salio para todos, que no te mortifique eso. NO tiene caso compartir con la mano cerrada