Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ACCEDER AUX FEUILLES EXCEL VIA ADO


Information sur la source

Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous : excel, ado, datatable, dataset, oledbdataadapter Niveau : Débutant Date de création : 30/01/2007 Date de mise à jour : 30/01/2007 19:17:44 Vu / téléchargé: 10 906 / 1 498

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

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

  • 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
    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

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

30 janvier 2007 19:17:44 :
AJOUT DE LA SOURCE

Commentaires et avis

signaler à un administrateur
Commentaire de romagny13 le 31/01/2007 01:49:05

Salut
merci pour cet exemple

j'aurais voulu savoir à quoi correspond Renseignements$ de ta requete ? et est ce que le signe "$" est important et doit obligatoirement par exemple etre ajouter en fin de chaine ?

select * from [Renseignements$]

sinon c'est un bon début et il doit y avoir moyen certainement de l'utiliser de manière plus poussée
as tu trouvé des ressources sur le sujet sur le web ? ou msdn ?

car c'est vrai que c'est interessant de pouvoir faire la "communication" dans les 2 sens cad de visual studio > Access ou Access > Visual Studio
mercii
++

signaler à un administrateur
Commentaire de romagny13 le 31/01/2007 01:53:41

oOps lapsus
de Excel> Visual Studio ou Visual Studio> Excel (je passes trop de temps sur Access je finis par le mettre partout :p)

signaler à un administrateur
Commentaire de perceval_59 le 01/02/2007 07:10:56

Oui le $ est important, comme la synthaxe de la chaine de connexion.
comme tout ce que je fait il y a a l'origine un exemple trouvé sur le web.

malheureusement je pense que je vais finalement devoir passer par excel.application car toujours
pas trouvé de solution a cette nom recuperation des valeurs numérique.
commence a m'habituer apres mon abandon de la classe serial port apres 2 mois d'acharnement lol.

dommage.

signaler à un administrateur
Commentaire de DJMCG le 18/02/2007 09:20:26

Ne va pas trop vite pour abandonner, je vais jeter un oeil sur un doc. Je te tiens au courant.
JM

signaler à un administrateur
Commentaire de r_gabor le 19/03/2007 21:27:55

salut,

to example est tres bien, mais si dans la feiulli excel le champ est sous une format date, alors ne recupere pas nonplus.

il recuper seulement les champ avec une format text

mais si non, est bien

signaler à un administrateur
Commentaire de perceval_59 le 27/03/2007 14:12:56

J'avais un peu mis de coté cette partie.
le reste aussi d'ailleurs (quand je prend des vacances je fait pas a moitiè lol)

C'est reparti je met les mains dans le camboui.

J'avou ne pas avoir fait gaffe avec une date
(mais bon ca ne m'etonne pas car a premiere vue cela vien simplement du fait que ADO n'appreci pas le melange des genres, d'apres un article que j'ai lu quelque part)

personne n'a trouvé d'info???

signaler à un administrateur
Commentaire de perceval_59 le 27/03/2007 14:51:07

Lol bon j'aurrais pas mis longtemps a trouver finalement:
ppour la date en fait moi ca avait l'aire de marcher mais ....

réponse donnée ici par crocro
http://msdn2.microsoft.com/fr-fr/library/ms141683.aspx

il faut juste rajouter dans la chaine de connexion:
;IMEX=1;

signaler à un administrateur
Commentaire de rodcobalt22 le 05/07/2007 10:14:07

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

signaler à un administrateur
Commentaire de Adn56 le 24/09/2007 13:53:33 9/10

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  ^^

signaler à un administrateur
Commentaire de Adn56 le 23/04/2008 19:29:23

up !

signaler à un administrateur
Commentaire de webmor le 17/06/2008 20:40:46

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

signaler à un administrateur
Commentaire de perceval_59 le 18/06/2008 10:17:43

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Probleme d'entête De table ADO.NET et EXCEL [ par ssefyou ] Bonjour,(j'utilise ADO.net pour charger une datatable a partire d' un fichier excel .)j'ai un fichier excel (qui ne contien ni image ni Titre) que j'u Excel, ADO et base de données AS400 : comment se connecter ? [ par alexko73 ] Bonjour, après visite de nombreux messages sur ADO et les bases AS400, je ne trouve pas comment se connecter à cette base, en VBA sous excel. J'ai tro help datatable vb.net [ par piou62 ] Bonjour, Je programmé un peu sous vb6 et on m'a conseillé de passé en vb.net qui à priori est plus simple mais je galère avec les datatable et datas exportre et importer des donnes de dataset vers fichier excel. [ par zozotsdimaroc ] salut tout le monde ,je sais que ce probleme exsit pq mais j trouve des codes de datagrid vers excel ,et ca fonctinne tres bien,mais pas avec datagri Données a partire d'excel vers access via ado.net [ par ssefyou ] Bonsoire,j ai un petit soucis ,je veux récuperer des données a partire d'une feuil excel puis les envoyes vers une table X vide dans une base de donné VB.2005 + ADO.NET + DATASET [ par bename ] Bonjour,Je travail sur VB express 2005 et j'ai besoin d'utiliser (lire et écrire) 10 tables en même temps.Donc, vu que l'utilisation de plusieurs tabl Problème de troncature de chaine avec DataSet ??? [ par sebastden ] Bonjour,Le code suivant permet de r&#233;cup&#233;rer dans un datagrid, les donn&#233;es d'un fichier Excel.Le probl&#232;me, c'est que dans le Datagr Liaison Excel <-> Access en ADO et SQL [ par nico39 ] Bonjour à tous,Je souhaiterais à partir d'une macro VBA sous Excel aller chercher certaines données dans une base de données Access, mais qui contient Charger fichier txt dans un dataset en vb net [ par Syphou ] Bonjour, Je possède un fichier au format txt contenant 30 000 articles. Le fichier est sutructuré en différente colonne séparée par une tabulation. Si Filtrer un datatable dans VB2005 [ par bename ] Bonjour, Je travail sur vb 2005 et j'utilise un dataset pour accéder à ma base de données.DataAdapter.Fill(DataSet, nomTable)je voudrai savoir comment


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.