Quelle est la meilleure et la plus rapide façon de les écrire dans un fichier Excel à l'aide de C#?
Je suis en train d'écrire dans un fichier excel à l'aide de OLEDB (sans automatisation).
J'ai environ 500 lignes de données qui, je l'obtenir à partir d'une autre application et puis les écrire dans un fichier Excel, un par un à l'aide de 'INSERT INTO..' Requête.
Je suis sûr qu'il n'y a pas de retard dans la lecture des données à partir de l'autre application. J'ai vérifié que.
Le temps total nécessaire pour écrire dans le fichier excel pour les 500 lignes dans environ 3 minutes.
C'en est trop. C'est certainement à cause de l'écriture des fichiers de l'opération.
Quelle serait la meilleure façon de faire ce rapide?
Dois-je utiliser une autre technique pour l'écriture?
Devrais-je essayer une technique grâce à l'automatisation?
http://support.microsoft.com/kb/306023
Ce lien afficher de nombreuses techniques, mais ne savez pas lequel utiliser.
OriginalL'auteur | 2009-05-15
Vous devez vous connecter pour publier un commentaire.
Si vous le pouvez COM dans excel, vous pouvez interroger directement à partir d'excel via COM, ou de créer un tableau de données et de les déposer directement dans une gamme égale à la taille de votre tableau. Même si excel n'est pas idéal pour les petits appels COM, il fonctionne plutôt bien avec quelques grands appels COM 🙂
Ceci est un exemple de récupérer des données et de l'insérer dans un tableau dans excel en un seul appel COM
OriginalL'auteur Fry
Excel est livré avec tout ce dont vous avez besoin pour lire/écrire des données en XML.
J'ai utilisé le SpreadsheetML format, à l'occasion, et il a bien fonctionné pour moi. Avec elle, vous écrivez un document en format xml et le nom avec la .extension xls. Mostof la fonctionnalité excel est disponible. Microsoft de la documentation de référence est ici. Google pour les didacticiels en différentes langues comme l' Rails, PHP. Le livre Excel Hacks parle ainsi.
OriginalL'auteur JohnnyLambada
Si c'est juste des données, une importation d'un fichier CSV peut travailler. Créer le fichier dans le code et utiliser automation pour rendre Excel importer le fichier.
Mise à JOUR: Après avoir écrit ce que j'aime @MicTech la suggestion de dont je ne connaissais pas.
Il y a des exemples sur codeproject.com et d'autres endroits. Et cela devrait vous aider: msdn.microsoft.com/en-us/library/wss56bz7(SV.80).aspx
C'est rapide, il est parfois préférable d'utiliser Importation de Texte dans excel afin d'ouvrir l'csv cependant, comme excel format de texte élément de données scientifiques pour donner un seul exemple de l'auto excel comportement qui vous avez peu de contrôle sur.
OriginalL'auteur kenny
Nous utilisons SpreadsheetGear.
OriginalL'auteur David Robbins
J'ai recommandé FlexCel de la bibliothèque, mais il n'est pas libre 🙁
Mais si vous voulez format Office Open XML, vous pouvez utiliser http://excelpackage.codeplex.com/
OriginalL'auteur MicTech
Vous êtes à la recherche pour un temps de vidage d'Excel ou de rester connecté et de pousser des données vers Excel plus d'une fois?
Si vous cherchez à envoyer des données vers Excel plus d'une fois, vous devriez enquêter sur de faire un serveur RTD, j'ai utilisé de nombreuses fois et ils travaillent Serveur RTD
Si vous cherchez pour un temps, pousser vers Excel, vous devez utiliser COM. À l'aide de COM et C#
Version de C# 4 a quelques belles améliorations pour la gestion de COM et vous n'aurez plus besoin de pia (primary interop assemblies lorsque vous travaillez avec Excel. C# 4 n'est pas dans la production, mais encore vous pouvez télécharger une version bêta de celui-ci si cela fonctionne pour vous.
OriginalL'auteur Kelly
D'une autre manière "d'écrire" à Excel pour créer vos données dans une page HTML et de la charge. Excel peut lire html. Un point de bonus pour le faire via html, c'est que vous pouvez mettre en forme les données un peu mieux que vous pouvez avec CSV.
Mais cela dit, si vous êtes seulement d'exporter des données simples (petits champs de texte et de chiffres), aller avec CSV.
OriginalL'auteur Chris Brandsma
Bien, de la plus basique (mais aussi la plus compliquée) la façon d'écrire Excel est la création d'un fichier binaire à la suite de la BIFF format. Avec le BIFF format, vous devez expliquer en quoi le fichier Excel est structuré. C'est très complexe, mais vous avez le contrôle, sur une base par cellule, sur quoi écrire.
Il y a d'autres CodeProject exemples sur l'exportation d'un jeu de données dans un fichier Excel. L'un dans l'esprit crée un fichier XML qui suit le Excel format XML. Il écrit également sur une base par cellule. Regardez:
http://www.codeproject.com/KB/office/ExportDataSetToExcel.aspx
OriginalL'auteur johnofcross
J'ai été en utilisant le Aspose.Les cellules bibliothèque avec un grand succès à écrire des fichiers Excel. C'est loin d'être bon marché.
OriginalL'auteur rmeador
Cette bibliothèque est gratuit et assez rapide pour créer les fichiers xls, il fonctionne également si vous n'avez pas de la suite MS Office installé.
http://code.google.com/p/excellibrary/downloads/list
OriginalL'auteur
Nous utilisons aspose cellules. Il est assez facile à utiliser, rapide, n'a apparemment pas de problèmes.
http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default.aspx
OriginalL'auteur Yasir Laghari
La façon rapide et sale est de créer un tableau HTML contenant vos données tabulaires et enregistrer avec un .extension xls. Il travaille et l'ouvrir dans Excel amende.
OriginalL'auteur Dan Diplo