Dans l'une de nos applications ASP.NET en C #, nous prenons une certaine collection de données (collection SubSonic) et l'exportons vers Excel. Nous souhaitons également importer des fichiers Excel dans un format spécifique. Je recherche une bibliothèque que je puisse 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, si c'est possible, essaie de mettre des champs numériques comme numériques dans Excel.
- Fonctionne bien avec des fichiers volumineux (100k à 10M) - assez rapidement.
- Ne plante pas lors de l'exportation des GUID!
- Ne coûte pas cher (pas de bibliothèque d'entreprise comme aspose). La gratuité est toujours excellente, mais peut être une bibliothèque commerciale.
Quelle bibliothèque recommandez-vous? L'avez-vous utilisé pour de grandes quantités de données? Y a-t-il d'autres solutions?
À l'heure actuelle, j'utilise un outil simple qui génère du HTML qui est chargé par Excel plus tard, mais je perds certaines fonctionnalité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 du genre, il suffit d'exporter des données brutes.
Je pense aux fichiers CSV plats, mais Excel est une exigence du client. Je peux travailler directement avec CSV, si j'avais un outil pour convertir vers et depuis Excel. Étant donné qu'Excel 2007 est un format de fichier xml (et zippé), je suppose que ce type de bibliothèque devrait être facile à trouver. Cependant, ce qui compte le plus pour moi, ce sont vos commentaires et opinions.
EDIT: Ironiquement, à mon avis et suite à la réponse avec le plus de votes, la meilleure bibliothèque d'importation et d'exportation Excel n'est pas du tout d'exportation. Ce n'est pas le cas pour tous les scénarios, mais c'est pour le mien. Les fichiers XLS ne prennent en charge que 64 000 lignes. XLSX prend en charge jusqu'à 1M. Les bibliothèques gratuites que j'ai essayées présentent de mauvaises performances (une seconde pour charger une ligne lorsque vous avez 200 000 lignes). Je n'ai pas essayé les versions payantes, car j'estime 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.
la source
Réponses:
Je vais jeter ma main pour les fichiers csv plats, ne serait-ce que parce que vous avez le plus grand contrôle sur le code. Assurez-vous simplement de lire les lignes et de les traiter une par une (la lecture du document jusqu'à la fin et le fractionnement consommeront toute votre mémoire - comme pour l'écriture, diffusez-le).
Oui, l'utilisateur devra enregistrer au format CSV dans Excel avant de pouvoir le traiter, mais peut-être que cette limitation peut être surmontée en formant et en fournissant des instructions claires sur la page?
Enfin, lorsque vous exportez vers le client, si vous définissez le type mime sur text / csv, Excel est généralement mappé à ce type afin qu'il apparaisse à l'utilisateur comme un «fichier Excel».
la source
J'ai découvert le SDK Open XML depuis ma réponse initiale. Il fournit, entre autres, des classes fortement typées pour les objets de feuille de calcul et semble être assez facile à utiliser. Je vais l'utiliser pour des rapports dans l'un de mes projets. Hélas, la version 2.0 n'est pas censée sortir avant fin 2009 ou 2010.
la source
la nouvelle version d'ExcelPackage est ici http://EPPlus.codeplex.com
Je me bats toujours avec la fonction d'exportation vers Excel puisque mon application devrait exporter certaines données vers Excel-template 2007
ce projet me semble bien, et le développeur est très réactif aux bugs et problèmes.
la source
J'utilise ClosedXML et cela fonctionne très bien!
la source
SpreadsheetGear pour .NET lit et écrit CSV / XLS / XLSX et fait plus.
Vous pouvez voir des exemples ASP.NET en direct avec le code source C # et VB ici et télécharger un essai gratuit ici .
Bien sûr, je pense que SpreadsheetGear est la meilleure bibliothèque pour importer / exporter des classeurs Excel dans ASP.NET - mais je suis partial. Vous pouvez voir ce que certains de nos clients disent sur le côté droit de cette page .
Avertissement: Je possède SpreadsheetGear LLC
la source
NPOI pour Excel 2003 Open Source http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html
la source
J'ai utilisé Flexcel dans le passé et c'était génial. Mais c'était plus pour créer et mettre à jour des feuilles de calcul Excel par programme.
la source
L'exportation CSV est simple, facile à implémenter et rapide. Il y a cependant un problème potentiel à noter. Excel (jusqu'en 2007) ne conserve pas les zéros non significatifs dans les fichiers CSV. Cela déformera les codes postaux, les identifiants de produit et d'autres données textuelles contenant des valeurs numériques. Il y a une astuce qui fera qu'Excel importera correctement les valeurs (en utilisant des délimiteurs et des valeurs de préfixe avec le signe =, si je me souviens bien, par exemple .., = "02052", ...). Si vous avez des utilisateurs qui effectueront des tâches de post-traitement avec le CSV, ils doivent savoir qu'ils doivent changer le format en XLS et ne pas enregistrer le fichier au format CSV. S'ils le font, les zéros non significatifs seront définitivement perdus.
la source
Pendant des années, j'utilise JExcel pour cela, un excellent projet Java open source. Il était également capable de .NET en utilisant J # pour le compiler, et j'ai également eu beaucoup de succès avec lui dans cette incarnation. Cependant, récemment, j'ai dû migrer le code vers .NET natif pour prendre en charge une application IIS 64 bits dans laquelle je crée une sortie Excel. La version J # 32 bits ne se chargerait pas.
Le code pour CSharpJExcel est LGPL et est actuellement disponible sur cette page, alors que nous nous préparons à le déployer sur le site JExcel SourceForge. Il compilera avec VS2005 ou VS2008. Les exemples de la documentation JExcel d'origine passeront assez bien intacts à la version .NET.
J'espère que cela sera utile à quelqu'un ici.
la source
Je travaille avec Excel Jetcell depuis longtemps et je peux vraiment le recommander. http://www.devtriogroup.com/exceljetcell
la source
Le site suivant montre comment exporter un DataTable, un DataSet ou une List <> dans un fichier .xlsx Excel 2007 «approprié» (plutôt que d'exporter un fichier .csv et de demander à Excel de l'ouvrir).
Il utilise les bibliothèques OpenXML, vous n'avez donc pas besoin d'installer Excel sur votre serveur.
Base de connaissances Mikes - ExportToExcel
L'ensemble du code source est fourni gratuitement , ainsi qu'une application de démonstration.
C'est très facile à ajouter à vos propres applications, il vous suffit d'appeler une fonction, en passant un nom de fichier Excel et votre source de données:
J'espère que cela t'aides.
la source
Vérifiez le projet ExcelPackage , il utilise le format de fichier Office Open XML d'Excel 2007, il est léger et open source ...
la source
J'ai essayé CSharpJExcel et je ne le recommanderais pas, du moins pas tant qu'il n'y aura pas de documentation disponible. Contrairement aux commentaires des développeurs, ce n'est pas un simple port natif.
la source
Je sais que c'est assez tard, mais je me sens obligé de répondre à xPorter (écriture) et xlReader (lecture) de xPortTools.Net . Nous avons testé pas mal de bibliothèques et rien ne s'est rapproché des performances (je parle d'écrire des millions de lignes en quelques secondes ici). Je ne peux pas dire assez de bonnes choses sur ces produits!
la source
Vous pouvez utiliser
Microsoft.Jet.OLEDB.4.0
la source
Nous venons d'identifier un besoin similaire. Et je pense qu'il est important de considérer l'expérience utilisateur.
Nous avons presque été distraits par la même chose:
... flux de travail
Add-in Express vous permet de créer un bouton dans Excel sans tout ce qui est fastidieux avec VSTO. Ensuite, le workflow devient:
Demandez au code derrière le bouton d'utiliser l'API Excel "native" (via Add-in Express) et de le pousser directement dans le système destinataire. Vous ne pouvez pas être beaucoup plus transparent pour le développeur ou l'utilisateur. Vaut la peine d'être considéré.
la source
Il y a un très bon article et une bibliothèque sur CodeProject par Yogesh Jagota:
Bibliothèque d'importation-exportation XML Excel
Je l'ai utilisé pour exporter des données à partir de requêtes SQL et d'autres sources de données vers Excel - fonctionne très bien pour moi.
À votre santé
la source
Vous pouvez essayer la bibliothèque suivante, c'est assez simple et c'est juste un wrapper léger sur le SDK Open XML de Microsoft (vous pouvez même réutiliser le formatage, les styles et même des feuilles de calcul entières à partir d'un fichier Excel secondaire): http://officehelper.codeplex.com
la source
Spreadsheetgear est la meilleure bibliothèque commerciale que nous ayons trouvée et que nous utilisons. Notre société fait beaucoup d'import et d'export Excel avancés et Spreadsheetgear prend en charge de nombreuses fonctionnalités Excel avancées bien au-delà de tout ce que vous pouvez faire avec un simple CSV, et c'est rapide. Ce n'est pas gratuit ou très bon marché mais ça vaut le coup car le support est excellent. Les développeurs vous répondront en fait si vous rencontrez un problème.
la source
Que diriez-vous de la bibliothèque java Apache POI. Je ne l'ai pas utilisé pour Excel, mais je l'ai utilisé pour Word 2007.
la source