Manipulando archivos de Excel con C# sin morir en el intento (1/n)

Como desarrolladores, muchas veces nos hemos enfrentado a la necesidad de manipular archivos en formato excel.

Una forma, es manipular dichos archivos a través de la biliboteca de interoperabilidad Microsoft.Office.Interop.Excel.dll. Sin embargo, esto requiere que tengamos instalados ensamblados especiales de acuerdo a la compilación que hayamos realizado, lo cual podría provocar el clásico error El proveedor ‘Microsoft.ACE.OLEDB.12.0’ no está registrado en el equipo local. En esta entrada, veremos una forma mucho más sencilla de manipular archivos de Excel de una forma nativa y sin necesidad incluso de tener instalado Excel en la máquina de los clientes.

Overview

Los archivos de Office de las versiones actuales de Office, están basados en OpenXML, cuya definición en Wikipedia es:

Office Open XML (también llamado OOXML u OpenXML) es un formato de archivo abierto y estándar cuyas extensiones más comunes son .docx, .xlsx y .pptx. Se le utiliza para representar y almacenar hojas de cálculo, gráficas, presentaciones y documentos de texto. Un archivo Office Open XML contiene principalmente datos basados en el lenguaje de marcado XML, comprimidos en un contenedor .zip específico.

Es decir, que si contamos con un archivo con extensión .xlsx, basta con cambiarle dicha extensión por una .zip, para poder descomprimirlo y ver en su interior el contenido del archivo tal como en la siguiente imágen:

Screen Shot 03-04-16 at 12.33 PM

Screen Shot 03-04-16 at 12.42 PM

Podemos darnos cuenta entonces, que un archivo de Excel no es más que un conjunto de archivos xml que podemos manipular a nuestro antojo para llevar a cabo distintas operaciones.

Trabajando con archivos de Excel

Para no reinventar la rueda, hoy en día existen diferentes alternativas para abrir documentos con formato open xml. En esta publicación haremos uso de ClosedXML Basta con ir a la página oficial en CodePlex para descargar la dll que necesitemos (framework 3.5 o 4) y descomprimir el archivo .zip descargado para poder utilizar la biblioteca. Por último (Lo remarco en rojo porque es importante) debemos descargar la biblioteca DocumentFormat.OpenXml, ya sea para el framework +4.0 ó 3.5

Creando un archivo de Excel

El uso de la biblioteca (al ser orientado a objetos) resulta extremadamente sencillo. Si deseamos crear una instancia de un libro de Excel, basta con utilizar la clase XLWorkbook, el cual contiene una propiedad haciendo referencia a las hojas del libro, las que a su vez contienen referencias a las celdas.

Nuestro primer ejemplo, consistirá en crear un libro en Excel, el código para hacerlo es el siguiente:

var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hola mundo desde Excel!";
workbook.SaveAs("HelloWorld.xlsx");

 

Una vez ingresado el código en el manejador de eventos de un botón, tendremos un libro de Excel satisfactoriamente creado:

Screen Shot 03-04-16 at 01.02 PM

Screen Shot 03-04-16 at 01.11 PM

Screen Shot 03-04-16 at 01.11 PM 001

En la siguiente entrada, nos dedicaremos a manipular archivos de Excel existentes.

¡Hasta la próxima!

¿Alguna vez has tenido problemas para seleccionar el tipo de gráfica mas apropiado en excel?

Bueno, pues yo sí, jeje. Es por este tipo de problemas, que Microsoft Labs trabaja constantemente para crear y solucionar problemas de la vida cotidiana.

En esta ocasión, ha liberado un complemento para excel, el cual permite, a través de la selección de celdas de las cuales queremos crear una gráfica, sugerirnos una serie de gráficas con un resultado en vivo. Del sitio retomo lo siguiente:

Ever struggled to find just the right chart for your data? Chart Advisor was created as a concept test to explore new ways Excel users can create graphs quickly and effectively. Based on the data in your spreadsheet, it identifies, ranks, and displays an array of charts most relevant to you so you can make the most out of your presentation.

Lo he instalado, y funciona de maravilla:

image

Pues espero, que a mas de uno le sirva 🙂

Link: http://www.officelabs.com/projects/chartadvisor/Pages/default.aspx

Salu2

Héctor Uriel Pérez Rojas

Impresionante video de AC/DC… pero en Excel!!

 

Así es, tal como se escucha, el grupo AC/DC ha lanzado un video de su canción Rock N Roll Train, con la pequeña gran diferencia que está hecho con ASCII y desde excel!

Sí sí sí, sé que hay incrédulos que ni aún viendo el video, me creerán, así que aquí está la dirección para que bajen el archivo de excel y lo prueben ustedes mismos jeje.

Archivo excel del video

Salu2 y q lo disfrutéis

Héctor Pérez