¿Alguien podría ayudarme a leer una simple hoja de cálculo de Excel en la aplicación C#? Me gustaría poder iterar cada fila y tener un control en cada una de las columnas.C# lea la hoja de cálculo de Excel
Gracias, rod.
¿Alguien podría ayudarme a leer una simple hoja de cálculo de Excel en la aplicación C#? Me gustaría poder iterar cada fila y tener un control en cada una de las columnas.C# lea la hoja de cálculo de Excel
Gracias, rod.
Éste es el método más fácil que he encontrado:
El método general es utilizar Excel COM Interop. Un google rápido encontrará muchos tutoriales. Aquí hay uno para crear una hoja: debe apuntar en la dirección (la lectura es más o menos la misma).
Un método alternativo es usar ADO.Net. Esto solo es realmente viable si su hoja de Excel está bien formada como una tabla (es decir, una base de datos), pero es más fácil que el enfoque de interoperabilidad.
Mientras que la Interoperabilidad COM de Excel funciona, requiere que Excel esté instalado en la máquina del cliente. Si eso no es un problema, todo está bien, pero si lo es, podría considerar buscar en la biblioteca de Aspose.Cells (sin afiliación, simplemente los usó antes). Son simples y potentes, aunque tienen un costo de licencia comercial.
Si va a abrir el libro de trabajo de Excel 2007 o 2010 (formato ooxml), puede descargar Open XML SDK 2.0 for Microsoft Office (que no requiere que tenga MS Office instalado).
Cualquier versión anterior a Excel 2007, puede usar los Conjuntos de interoperabilidad primarios de Office] (utilizando COM Interop, que requiere que tenga MS Office instalado). –
Tutorial utilizando Open XML SDK: http://msdn.microsoft.com/en-us/library/bb507946.aspx, tutorial utilizando COM Interop: http://dotnetperls.com/excel-interop –
He usado ADO.NET y Jet en el pasado. Ten en cuenta que si tienes columnas que obviamente no son de un tipo, verás cosas extrañas suceder. Jet intenta asignar un tipo de datos a una columna en función de los primeros varios valores. Lo bueno es que puedes consultar la hoja de cálculo como si fuera una tabla.
Aquí es una muestra utilizando OLEDB
http://www.techiesweb.net/2009/12/reading-records-excel-file-insert-database-aspnet/
Este enlace ahora está caducado. .. –
ADO no es sólo más fácil, pero más rápido. –
¿De verdad? Supongo que tiene sentido. Solo comparé Excel ADO.Net con bases de datos adecuadas con consultas SQL y luego es muy lento, pero eso se debe principalmente a que Excel no admite índices de bases de datos. – winwaed