Em um de nossos aplicativos ASP.NET em C #, pegamos uma certa coleta de dados (coleção SubSonic) e exportamos para o Excel. Também queremos importar arquivos do Excel em um formato específico. Estou procurando uma biblioteca que possa usar para esse fim.
Requisitos:
- Arquivos do Excel 2007 (O Excel 2003 suporta mais de 64k linhas? Preciso de mais do que isso.)
- Não requer o Excel no servidor
- Toma uma coleção digitada e, se possível, tenta colocar campos numéricos como numéricos no Excel.
- Funciona bem com arquivos grandes (100k a 10M) - rápido o suficiente.
- Não falha ao exportar GUIDs!
- Não custa um upload de dinheiro (nenhuma biblioteca corporativa como a Aspose). Gratuito é sempre ótimo, mas pode ser uma biblioteca comercial.
Qual biblioteca você recomenda? Você o usou para grandes quantidades de dados? Existem outras soluções?
No momento, estou usando uma ferramenta simples que gera HTML que é carregado pelo Excel posteriormente, mas estou perdendo alguns recursos, e o Excel reclama quando o carregamos. Não preciso gerar gráficos ou algo assim, apenas exportar dados brutos.
Estou pensando em arquivos CSV simples, mas o Excel é um requisito do cliente. Eu posso trabalhar com CSV diretamente, se eu tivesse uma ferramenta para converter de e para o Excel. Como o Excel 2007 é um formato de arquivo baseado em xml (e compactado), acho que esse tipo de biblioteca deve ser fácil de encontrar. No entanto, o que mais importa para mim são seus comentários e opiniões.
Edição: Ironicamente, na minha opinião e após a resposta com mais votos, a melhor biblioteca de importação e exportação do Excel não é de exportação. Este não é o caso de todos os cenários, mas é o meu. Os arquivos XLS suportam apenas 64k linhas. XLSX suporta até 1 milhão. As bibliotecas gratuitas que eu tentei apresentam desempenho ruim (um segundo para carregar uma linha quando você tem 200 mil linhas). Não experimentei os pagos, pois sinto que eles são muito caros pelo valor que oferecem quando tudo que você precisa é de uma rotina rápida de conversão XLSX <-> CSV.