En una de nuestras aplicaciones ASP.NET en C #, tomamos una cierta recopilación de datos (colección SubSonic) y la exportamos a Excel. También queremos importar archivos de Excel en un formato específico. Estoy buscando una biblioteca que pueda usar para este propósito.
Requisitos:
- Archivos de Excel 2007 (¿Excel 2003 admite más de 64k filas? Necesito más que eso).
- No requiere Excel en el servidor
- Toma una colección escrita y, si puede, intenta poner campos numéricos como numéricos en Excel.
- Funciona bien con archivos grandes (100k a 10M), lo suficientemente rápido.
- ¡No se bloquea al exportar GUID!
- No cuesta una gran cantidad de dinero (no hay una biblioteca empresarial como Aspose). Gratis siempre es genial, pero puede ser una biblioteca comercial.
¿Qué biblioteca me recomiendan? ¿Lo ha usado para grandes cantidades de datos? ¿Hay otras soluciones?
En este momento, estoy usando una herramienta simple que genera HTML que Excel carga más adelante, pero estoy perdiendo algunas capacidades, además Excel se queja cuando lo cargamos. No necesito generar gráficos ni nada de eso, solo exportar datos en bruto.
Estoy pensando en archivos CSV planos, pero Excel es un requisito del cliente. Puedo trabajar con CSV directamente, si tuviera una herramienta para convertir ay desde Excel. Dado que Excel 2007 es un formato de archivo basado en xml (y comprimido), supongo que este tipo de biblioteca debería ser fácil de encontrar. Sin embargo, lo que más me importa son sus comentarios y opiniones.
EDITAR: Irónicamente, en mi opinión y siguiendo la respuesta con la mayoría de los votos, la mejor biblioteca de importación y exportación de Excel no es exportar en absoluto. Este no es el caso para todos los escenarios, pero es para el mío. Los archivos XLS solo admiten 64k filas. XLSX admite hasta 1M. Las bibliotecas gratuitas que he probado presentan un mal rendimiento (un segundo para cargar una fila cuando tienes 200k filas). No he probado los pagos, ya que creo que son demasiado caros por el valor que ofrecen cuando todo lo que necesita es una rápida rutina de conversión XLSX <-> CSV.