Dans une de nos applications ASP.NET en C#, nous prenons une certaine collection de données (collection SubSonic) et l'exportons vers Excel. Nous voulons également importer des fichiers Excel dans un format spécifique. Je suis à la recherche d'une bibliothèque que je peux utiliser à cette fin.
Exigences :
- Fichiers Excel 2007 (Excel 2003 prend-il en charge plus de 64 000 lignes ? J'ai besoin de plus que cela).
- Ne nécessite pas Excel sur le serveur
- Prend une collection tapée et, s'il le peut, essaie de mettre les champs numériques comme numériques dans Excel.
- Fonctionne bien avec les gros fichiers (100k à 10M) - assez rapide.
- Ne se plante pas lors de l'exportation de GUIDs !
- Ne coûte pas un prix exorbitant (pas de bibliothèque d'entreprise comme aspose). La gratuité est toujours une bonne chose, mais il peut s'agir d'une bibliothèque commerciale.
Quelle bibliothèque recommandez-vous ? L'avez-vous utilisée pour de grandes quantités de données ? Existe-t-il d'autres solutions ?
Pour l'instant, j'utilise un outil simple qui génère du HTML qui est chargé par Excel par la suite, mais je perds certaines capacités, et Excel se plaint lorsque nous le chargeons. Je n'ai pas besoin de générer des graphiques ou quoi que ce soit d'autre, juste d'exporter des données brutes.
Je pense à des fichiers CSV plats, mais Excel est une exigence du client. Je peux travailler avec CSV directement, si j'avais un outil pour convertir vers et depuis Excel. Étant donné qu'Excel 2007 est un format de fichier basé sur le xml (et zippé), je suppose que ce type de bibliothèque devrait être facile à trouver. Cependant, ce qui m'importe le plus, ce sont vos commentaires et opinions.
EDIT : Ironiquement, à mon avis et suivant la réponse avec le plus de votes, la meilleure bibliothèque d'import-export d'Excel est de ne pas exporter du tout. Ce n'est pas le cas pour tous les scénarios, mais c'est le cas pour le mien. Les fichiers XLS ne supportent que 64k lignes. XLSX supporte jusqu'à 1M. Les bibliothèques gratuites que j'ai essayées ont des performances médiocres (une seconde pour charger une ligne lorsque vous avez 200 000 lignes). Je n'ai pas essayé les bibliothèques payantes, car j'ai l'impression qu'elles sont trop chères pour la valeur qu'elles offrent lorsque tout ce dont vous avez besoin est une routine de conversion XLSX<->CSV rapide.
18 votes
"Étant donné qu'Excel 2007 est un format de fichier basé sur le xml (et zippé), je suppose que ce genre de bibliothèque devrait être facile à trouver" -- hah ! C'est comme dire "Excel 97 est basé sur les octets, donc ce genre de bibliothèque devrait être facile à trouver". XML n'implique pas la simplicité, et OOXML est l'exemple type de la façon de rendre XML sous-spécifié et indéchiffrablement complexe :-)
0 votes
En fait, vous n'avez pas tout à fait raison de faire cette supposition. Il existe des outils qui permettent de construire très facilement un document OOXML bien formé, au moins pour XLSX, avec C#.NET.
3 votes
J'ai créé une proposition de site pour donner aux questions de ce genre un foyer officiel loin de Stack Overflow. Il s'appelle Recommandations du code Aidez-nous à en faire une réalité en adhérant et en posant des questions dès maintenant !
0 votes
Que pensez-vous de Spire.xls ? Il ne coûte que 800 $ pour l'édition Pro. Vous obtenez toutes vos conversions ainsi que votre importateur ou exportateur Excel. e-iceblue.com/Introduce/
0 votes
GemBox.Spreadsheet est une autre solution qui vaut la peine d'être vérifiée, elle est super rapide et dispose d'une version gratuite et d'une version pro. De plus, la version pro est plutôt bon marché et n'a pas de coûts cachés pour le déploiement comme la plupart des autres solutions.