IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Accélerer la lecture d'un fichier excel


Sujet :

Windows Forms

  1. #1
    Membre du Club Avatar de Franck2mars
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 64
    Points
    64
    Par défaut [VB.NET] Accélerer la lecture d'un fichier excel
    J'ai un souci, je charge dans un tableau les données d'un fichier excel de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For i = 2 To nblignes
       For j = 1 To nbcolonnes
          tablodata(x) = tablodata(x) & feuille.Cells(i, j).value
             If (j < nbcolonnes) Then
                tablodata(x) = tablodata(x) & ","
             EndIf
       Next
       x += 1
    Next
    
    Je mets les valeurs d'une meme ligne dans la meme case du tableau avec une virgule entre chaque données

    Cependant, la lecture d'un fichier de 10K lignes prend 5 bonnes minutes, alors qu'il ne met meme pas 20 sec pour charger un fichier csv. Meme si je sais que je n'arriverai jamais a ce genre de performance, quelqu'un sait il s'il est possible d'accélerer l'acces aux données d'un fichier *.xls ??

    Merci,

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    là je récupère un million de valeur en 5 secondes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim monExcel As New Excel.Application
    Dim Classeur As Excel.Workbook, feuille As Excel.Worksheet
    Dim Recup As System.Array
    Classeur = monExcel.Workbooks.Open("e:\classeur1.xls")
    feuille = Classeur.Worksheets(1)
    Recup = CType(feuille.Range(feuille.Cells(1, 1), feuille.Cells(10000, 100)).Value, System.Array)
    Classeur.Close(False)
    feuille = Nothing
    Classeur = Nothing
    monExcel.Quit()
    monExcel = Nothing
    MsgBox(Recup(10, 10).ToString)

  3. #3
    Membre du Club Avatar de Franck2mars
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 64
    Points
    64
    Par défaut
    EXCELLENT!!!! Merci pour ton aide, les temps de réponses sont incomparables.....

    C'est encore plus rapide que le csv!!!

    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Bon, je débute complétement en VB.net.
    Lorsque j'éxecute le code, ça me renvoit l'exception "NullReferenceException" sur la ligne MsgBox(Recup(20, 20).ToString).

    Si quelqu'un pouvait me dire pourquoi ça fait ça, ça m'aiderait beaucoup.
    Images attachées Images attachées  

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    En fait, maintenant j'arrive à récupérer des valeurs mais ça me renvoie que des 0, alors qu'il y a vraiment des valeurs :S

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture d'un fichier Excel en VB.Net
    Par Tsunamy dans le forum VB.NET
    Réponses: 7
    Dernier message: 11/07/2010, 16h04
  2. [Debutant][VB.net] Probleme d'ouverture d'une fichier excel
    Par Tatouine dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/06/2006, 12h42
  3. Lecture d'un fichier Excel uniquement sur un seul poste
    Par loutsky dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/05/2006, 08h09
  4. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 17h10
  5. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo