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

Accès aux données Discussion :

[VB.NET] Comment lire les données d'une feuille de fichier Xls particulière ?


Sujet :

Accès aux données

  1. #1
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    [VS.NET 2003]

    salut à tous !

    J'essaye de lire des données d'une feuille particulière dans un fichier Excel.
    Ce que je souhaite, c'est préciser un indice pour une feuille, et de pouvoir y accéder pour récupérer ses données. Donc je suis parvenu à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    Dim DS As System.Data.DataSet
    Dim FeuillesExcel As DataTable
    Dim Commande As System.Data.OleDb.OleDbDataAdapter
    Dim MyConnection As System.Data.OleDb.OleDbConnection
    Dim NomFeuille As String
    Dim IndiceFeuille As Integer = 1
     
    Try
       MyConnection = New System.Data.OleDb.OleDbConnection( _
        "provider=Microsoft.Jet.OLEDB.4.0; " & _
        "data source=C:\Projets\Test\TestFichierXLS\bin\produits.xls; " & _
        "Extended Properties=Excel 8.0;")
     
        FeuillesExcel = MyConnection.GetOleDbSchemaTable
    (System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing,
     Nothing, Nothing, "TABLE"})
        NomFeuille = "[" & FeuillesExcel.Rows(IndiceFeuille).Item
    ("TABLE_NAME").ToString() & "]"
     
        Commande = New System.Data.OleDb.OleDbDataAdapter( _
          "select * from " & NomFeuille, MyConnection)
     
        DS = New System.Data.DataSet
        Commande.Fill(DS)
        Commande.FillSchema(DS, SchemaType.Mapped)
        DataGrid1.DataSource = DS
     
     Catch ex As Exception
        MsgBox(ex.Message)
     Finally
        If Not MyConnection Is Nothing Then
           MyConnection.Close()
        End If
     End Try
    Mais le soucis c'est qu'arrivé à la ligne


    FeuillesExcel = MyConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
    j'obtiens le message d'erreur suivant

    Opération non valide. La connexion est fermée
    Je ne vois pas ou est le malaise... quelqu'un a une idée ?

    D'avance merci

    Juste pour préciser, j'ai essayé avec des fichiers d'Excel 2003 et 97, avec le même résultat.

    Sur mon poste je dispose de Excel 2003.
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  2. #2
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Bon alors si j'ajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    MyConnection.Open()
    avant ma ligne incriminée, tout de suite ça va mieux...

    J'ai honte... j'avais pas vu ça... je crois qu'il faut que j'aille prendre l'air là
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    salut

    dit je me suis appuyé sur ton exemple pour mon application car elle doit faire quasiment la meme chose que toi, mais je n'arrive pas a la faire fonctionner comme il faut... j'ai un fichier xls nommé DDASS.xls, et dedans, il y a des colonnes avec différents titres, et je ne voit pas comment modifier ton progr afin de pouvoir parcourir mes colonnes. vu que tu a l'air d'avoir pas mal bossé sur le sujet, je voudrais savoir si tu pouvait m'aider...

  4. #4
    Membre habitué Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Points : 177
    Points
    177
    Par défaut
    Salut Boubounne !

    ça coince à quel endroit de ton côté ?

    Normalement si tu places le chemin de ton fichier xls dans DataSource, que tu indiques le numéro de feuillet correspondant à celui qui contient tes données, ça devrait coller...
    "On peut dire qu’il est possible de savoir comment vaincre sans être capable de le faire" - Sun Tze, in L'art de la guerre

    "Mais t'es complètement naze ou quoi ?! UNE pomme ! ça fait DEUX moitiés de pomme !! mais quand vas-tu le comprendre ?! J'en ai ma claque, j'me tire !" - Bouddha et un disciple, dans un moment de faiblesse

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

Discussions similaires

  1. Comment lire les données d'un Array en Delphi.Net
    Par PHIL45 dans le forum Delphi .NET
    Réponses: 4
    Dernier message: 09/07/2009, 13h16
  2. Réponses: 3
    Dernier message: 12/07/2007, 18h10
  3. Réponses: 2
    Dernier message: 16/10/2006, 11h24
  4. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21

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