|
Leer Excel 2007 desde .NET sin COM |
|
|
Escrito por Marcos
|
|
Sábado, 20 de Febrero de 2010 16:36 |
|
Bueeeno despues de estar un buen rato mirando he conseguido acceder a una hoja de Excel 2007 sin acceder al componente COM Microsoft.Office.Interop.Excel. uffffffffffffffffffffffffffffffffffffffffffffffffff
Lo pongo muy brevemente y de ahí a investigar.
Hay una libreria en Codeplex que se llama ExcelPackage que permite acceder a una hoja Excel 2007.
Estos documentos de Office 2007 tienen un formato nuevo que se llama Office Open XML en el cual los datos se gurdan mediante XML. Para ver el contenido podéis ponerle la extension .zip al archivo .xlsx y luego descomprimirlo veréis.
Bueno la libreria os la podeis bajar de aquí.
Os pongo un trocito de código para que os hagais una idea lo facil que es cambiar el valor de una celda.
ExcelPackage ep = new ExcelPackage(new FileInfo(@"d:\test.xlsx")); ExcelWorksheet sheet = ep.Workbook.Worksheets["Hoja1"]; ExcelCell cell = sheet.Cell(4, 7); cell.Value = "otro valor"; ep.Save();
La única pega que he visto en estos 50 min de prueba es que al grabar el paquete (conjunto de archivos XML) daba un error si no habías accedido a todas las hojas.
Es solo cambiar una linea de código y volver a compilar.
La solución esta aquí.
Lo he probado en .NET 2005 y todo ok por ahora. Bueno ya me puedo ir :-)
|
|
Última actualización el Sábado, 20 de Febrero de 2010 16:55 |