Acceder aux feuilles excel via ado

Soyez le premier à donner votre avis sur cette source.

Vue 17 003 fois - Téléchargée 1 949 fois

Description

J'ai un classeur excel possedant une feuille: Renseignements

cette feuille contient 2 colonnes et 41 lignes

afin de recuperer les données sur cette feuille j'utilise l'acces au données via ADO
je met HDR a no car il n'y a pas d'entete
et je boucle avec i car nombre de ligne constant

(le msgbox est juste la pour le test)

le probleme est que les valeurs numeriques ne sont pas recuperées... (seulement si en format string)

le reste marche bien ca peu servir

Source / Exemple :


Public Sub ChargerNMP(ByVal FichierNMP As String)
        'variables de connexion
        Dim MyConnectionNMP As OleDbConnection = New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " & "data source=" _
                & FichierNMP & "; " & "Extended Properties=""Excel 8.0;HDR=NO;""")

        Dim MyCommand As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter _
                ("select * from [Renseignements$]", MyConnectionNMP)

        Dim DS As System.Data.DataSet = New System.Data.DataSet

        MyCommand.Fill(DS)

        Dim TableExcel As DataTable

        TableExcel = DS.Tables(0)
        Dim msg As String = ""

        For i As Integer = 0 To 40
            msg = msg & TableExcel.Rows(i).Item(0).ToString & "  ---  " & TableExcel.Rows(i).Item(1).ToString & vbCrLf
        Next
        MsgBox(msg)
        MyConnectionNMP.Close()
    End Sub

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

perceval_59
Messages postés
13
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
18 juin 2008

Ouep marrant de voir un post vivre au long du temps... effectivement c'est ce que j'avais rajouté a la fin de mon script de connexion ;) (le 27/03/2007 14:51:07 )

Je fouille dans mon code et essaie de me rappeler:

pour la longueur de la table a extraire..

J'ai fait un truc du style:

TableExcel.rows.count - 1
webmor
Messages postés
3
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
17 juin 2008

Merci ton exemple ma bien aider, puisque tes données son hétérogène vous devais le préciser au moment de l’ouverture du fichier essai plutôt ça :
· Dim MyConnectionNMP As OleDbConnection = New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=
· & FichierNMP & "; " & "Extended Properties=Excel 8.0;HDR=NO;IMEX=1")

IMEX=1: spécifie le type de données à extraire
Adn56
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
up !
Adn56
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
salut, le code marche bien chez moi, avec un office97 sous XP.
Seul bug la valeur numérique ne s'affiche pas
Reste à trouver comment faire pour ouvrir un XLS de longueur inconnu !
style:
Do while TableExcel.Rows(i).Item(0)<> null ? j'essaye mais cela marche pas -__-"
En tout cas merci à toi ^^
cs_rodcobalt22
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

Bonjour à tous moi j'ai erreur m'indiquant qu'il ne trouve pas les pilotes ISAM ?? quelqu'un pourrait m'expliquer le soucis car là je séche

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.