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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    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.

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

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    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à

  3. #3
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    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 éclairé Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    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...

+ 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