Microsoft Office XML
Definición
http://es.wikipedia.org/wiki/Microsoft_Office_XML
Como siempre digo Wikipedia define mejor que yo y los invito a leer la información que ellos tienen sobre el Microsoft Office XML que será la base de nuestro Atículo sobre la creación de archivos Excel.
Son muchas las vías que existen algunas más complejas que otras y que requieren de más recursos que otras, librerias como las propia de el excel ó la creación de páginas html con extensión .xls gracias a que el excel interpreta las páginas html. Todos estos métodos existen y son usados por muchos a diario pero en mi caso mejor hago uso de el XML SpreadSheet 2003.
Si se fijan en el link de wikipedia verán como divide el XML microsoft para la creación de un archivo Excel con todo lo necesario para que el archivo sea usado por el Excel 2003 sin ningún problema.
Nosotros podemos ir armando el XML y luego crear un archivo con esa información guardandolo con extensión .xls.
Este artículo se basará en enseñarles una clase que brindo a la comunidad donde creo un archivo excel usando XML. Para este ar´ticulo se pueden bajar el DLL y referenciarlo en un proyecto Consola de forma rápida ó pueden bajarse el proyecto con el código fuente para que vayan viendo como se va creando el excel.
ExcelXml_Proyecto_Framework_3_5.zip (56,38 kb)
ExcelXml_DLL_Framework_3_5.zip (7,46 kb)
Creen un Proyecto Consola y hagan referencia al DLL de ExcelXML.dll, despues agregen la libreria usando "using dotnetPanama.ExcelXml;". Teniendo esto en su lugar podemos entonces ir viendo el código a continuación que hace uso de la librería. El código lleva sus comentarios para ir explicando cada parte.
001class Program
002{
003 static void Main(string[] args)
004 {
005 // Primero se crea el objeto ExcelApplication que es el principal
006 ExcelApplication app = new ExcelApplication();
007
008 // Despues se adapta 1 Worksheet
009 app.Worksheets.Add(new ExcelWorksheet());
010
011 app.Worksheets[0].Name = "dotnetPanama";
012
013 // Luego agregamos el primero Row con sus valores
014 // Ahy 2 formas de agregar Row pero usaremos la que mandamos los valores
015 // de los Cell por el constructor como Parámetos
016 app.Worksheets[0].Rows.Add(new ExcelRow(new object[] { "NOMBRE", "APELLIDO", "PAIS" }));
017
018 // Luego agregamos más rows con valores
019 app.Worksheets[0].Rows.Add(new ExcelRow(new object[] { "Marco", "Castillo", "Panamá" }));
020 app.Worksheets[0].Rows.Add(new ExcelRow(new object[] { "Jayson", "Quintero", "Panamá" }));
021 app.Worksheets[0].Rows.Add(new ExcelRow(new object[] { "Invitado", "Desconocido", "Argentina" }));
022
023 // Ya adaptado datos solo queda salvar el Archivo.
024 app.FilePath = "C:\\dotnetPanama_ExcelXML.xls";
025 app.SaveFile();
026
027 Console.Read();
028 }
029}
Los invito a que vean como construyo poco a poco el XML que al final será salvado como un archivo de Excel. Traté de hacer la librería lo más parecida a la librería propia de Microsoft y que tiene conceptos buenos que nos facilitarán en futuro poder exportar de un DataGridView a un objeto ExcelApplication y crear archivos Excel. Ya sería en otro artículo que pueda brindar la manera como yo pase un DataGridView a Excel creando una extensión a el DataGridView que es una opción nueva que nos brinda el Framework 3.5.
Solo queda decirles que si sienten que no tienen todo claro me dejan saber y trataré de ayudarles más. En este artículo pienso que ya conocen de clases, interfaces, override y el uso de IEnumerable.
Tags: dotnet excel xml c#