Lire un gros document Excel
Je veux savoir quel est le moyen le plus rapide pour lire des cellules dans Excel.
J'ai un fichier Excel qui contient 50000 lignes et je veux savoir comment le lire rapidement.
J'ai juste besoin de lire la première colonne et avec connexion oledb, il me prend 15 secondes.
Est-il un moyen plus rapide?
Grâce
14 secondes assez rapidement? Pouvez-vous ignorer oledb et de convertir de la feuille csv fileand puis de lire les lignes du fichier? Comment est-ce que votre requête oledb ressembler? A cette cellule un grand nombre de données? Est-il excel OpenXml (aka xlsx)?
Désolé, le document excel est déjà en cours .csv.
si il est déjà en csv, utiliser cvs lecteur: voir ici codeproject.com/Articles/9258/A-Fast-CSV-Reader
Désolé, le document excel est déjà en cours .csv.
si il est déjà en csv, utiliser cvs lecteur: voir ici codeproject.com/Articles/9258/A-Fast-CSV-Reader
OriginalL'auteur Sebastien | 2013-03-11
Vous devez vous connecter pour publier un commentaire.
Ici est une méthode qui repose sur l'aide de Microsoft.Bureau de.Interop.Excel.
Veuillez Noter: Le fichier Excel que j'ai utilisé avait une seule colonne de données avec 50 000 entrées.
1) Ouvrez le fichier avec Excel, enregistrez-le au format csv, et fermer Excel.
2) Utiliser StreamReader pour lire rapidement les données.
3) Diviser les données sur retour chariot saut de ligne et l'ajouter à une liste de chaînes.
4) Supprimer le fichier csv que j'ai créé.
J'ai utilisé le Système.Diagnostics.Chronomètre au moment de l'exécution, et il a fallu 1.5568 secondes pour la fonction à exécuter.
Ressources:
http://www.codeproject.com/Articles/5123/Opening-and-Navigating-Excel-with-C
Comment découper des chaînes de transport de retour avec C#?
Je pense que vous pouvez également utiliser ce code
string line = "" line = sr.ReadLine()
au lieu de se soucier de lacarriage return line feed
OriginalL'auteur jiverson
Pouvez-vous mettre votre code pour la lecture de 50000 enregistrements à l'aide du fournisseur OLEDb. J'ai essayé de faire ce que, il a fallu 4-5 secondes pour lire 50000 enregistrements avec 3 colonnes. Je l'ai fait dans la suite, il suffit juste de jeter un oeil, il peut vous aider. 🙂
Si vous pouvez mettre votre code ici, afin que je puisse essayer de rectifier. 🙂
OriginalL'auteur Hitesh
OLEDB prendra toujours plus de temps.
SQL Server 2005/2008 va le rendre plus rapide.
Pour les connexions OLEDB, il faut 7 enregistrements par secondes, tandis que
Pour SQLServer , il faut de 70 dossiers par secondes.
Il n'exige pas beaucoup de temps dans la lecture de fichiers séparés par des virgules, mais le temps est nécessaire pour insérer les données.
J'ai littéralement vécu cette chose.
Je l'ai dit, la lecture nécessite pas de temps, le temps est nécessaire à l'insertion de ce fichier de base de données, je travaille déjà sur la bourse de projet dans lequel je dois faire face à de gros commerce de fichiers .le format csv et je suis en train de faire la même opération. C'est pourquoi je l'ai dit.
Accordé, mais l'OP fait aucune implication que ce serait inséré dans une base de données. Il veut juste "lire cellules dans Excel". Je ne vois pas comment SQLServer vient même dans l'équation.
OriginalL'auteur Freelancer
Vous voulez juste pour lire une liste de nombres à partir d'un fichier? A-t-elle à être dans Excel? Certains non technique de la personne qui met à jour la liste? Si vous voulez lire de 50 000 numéros à partir d'une seule colonne dans une liste en mémoire, il suffit de copier les cellules dans un fichier texte et de le lire avec un TextReader. Ça va être instantanée.
OriginalL'auteur djcrabhat
J'ai été confronté à la même chose et j'ai lu dans le bureau de dev center :
http://social.msdn.microsoft.com/Forums/office/en-US/418ada31-8748-48d2-858b-d177326daa76/export-to-excel-open-xml-sdk-vs-microsoftofficeinteropexcel?forum=oxmlsdk
Vous avez deux choix pour la manipulation de fichiers Excel :
il n'y a pas beaucoup de différence entre les deux, mais dans votre cas où la performance est une question que vous devez utiliser le SDK Open XML qui peut être un peu plus rapide et n'a pas besoin de beaucoup de temps d'ouverture d'un fichier de grande taille avant de les traiter. comme vous pourrez le lire également dans le lien ci-dessus, et je cite :
un bon début pour apprendre le sdk open xml est fourni dans ce lien :
http://msdn.microsoft.com/en-us/library/office/gg575571.aspx
OriginalL'auteur hamzahir