EXCEL VB.NET

Résolu
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007 - 4 janv. 2005 à 16:28
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007 - 5 janv. 2005 à 10:48
Bonjour,

j'aimerais importer un fichier excel dans un datagrid.
J'ai cherché toute la journée. En essayant de mettre mes données du fichier excel dans un dataset mais en vain. Apparement il y aurai une erreur au niveau de la requete puisqu'il s'occupe d'executenonrequery et sors.
Voici mon code:


Dim DataSet
As
New
System.Data.DataSet



Dim requete_excel
As
New
System.Data.OleDb.OleDbCommand



Dim adapter_excel
As
New
System.Data.OleDb.OleDbDataAdapter



Dim excel_connexion
As
New System.Data.OleDb.OleDbConnection


............



Me.grille.Visible =
True


excel_connexion.ConnectionString = ("provider=Microsoft.Jet.OLEDB.4.0;data source=D:\Docs\JL-Performance\Torques.xls;Extended Properties=Excel 8.0")


excel_connexion.Open()


adapter_excel.SelectCommand = requete_excel


requete_excel.CommandText = "SELECT * FROM [Sheet1$]"


requete_excel.Connection = excel_connexion


requete_excel.ExecuteNonQuery()



Me.grille.DataSource = DataSet.Tables("[Sheet1$]")


adapter_excel.Fill(DataSet, "[Sheet1$]")


grille.SetDataBinding(DataSet, "[Sheet1$]")



Suis-je dans la bonne direction ou faut il que je fasse autrement?

Merci d'avance.

spike

5 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
5 janv. 2005 à 09:04
Salut,

j'ai trouvé quelquechose

Une feuille avec un bouton et une liste box
'Déclaration du DataSet
Dim DS1
As
New Data.DataSet()
'Déclaration de la Table à mettre dans le dataset

Dim DT_Excel
As
New Data.DataTable("ExcelTable")
'Connecxion à excel

Dim ExcelConn
As
New System.Data.OleDb.OleDbConnection()
'DataAdapter pour recevoir les données

Dim ExcelDA
As
New System.Data.OleDb.OleDbDataAdapter()
'Objet command pour les requêtes

Dim ExcelCom
As
New System.Data.OleDb.OleDbCommand()



Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles btnCharger.Click



Try


'On vide la dataset
DS1.Tables.Clear()
'On ajoute la table au dataset
DS1.Tables.Add(DT_Excel)
'On vide la table du dataset
DS1.Tables("ExcelTable").Clear()

'Chaine de connexion
ExcelConn.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source=C:\Essai\Essai.xls;Extended Properties=Excel 8.0"
'Ouverture de la connexion
ExcelConn.Open()

'Affectation de la connexion à l'objet command
ExcelCom.Connection = ExcelConn
'Création de la requête
'la première feuille de mon classeur s'appelle Feuil1
ExcelCom.CommandText = "SELECT * FROM [Feuil1$]"

'Affectation au DataAdapter de la requête
ExcelDA.SelectCommand = ExcelCom
'Execution de la requête
ExcelDA.SelectCommand.ExecuteNonQuery()
'Remplissage du dataset
ExcelDA.Fill(DS1.Tables("ExcelTable"))



Dim i
As
Integer
'Affichage dans une listbox des éléments du dataset
For i = 0
To DS1.Tables("ExcelTable").Rows.Count - 1
ListBox1.Items.Add(
CStr(DS1.Tables("ExcelTable").Rows(i).Item(0)))
ListBox1.Items.Add(
CStr(DS1.Tables("ExcelTable").Rows(i).Item(1)))

Next



Catch ex
As Exception
MsgBox(ex.ToString)

End
Try
End
Sub

Par contre si tu as un fichier excel du type sur deux colonnes
1 6
2 7
3 8
4 9
5 10
la requête ne prend pas le première ligne
Et là j'ai pas trouvé à mon de rajouté une ligne bidon avant
@+
LIM
3
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007
5 janv. 2005 à 10:06
Merci j'ai bien avancé grace a toi

Mais le probleme maitenant se pose au niveau de mon


adapter_excel.SelectCommand.ExecuteNonQuery()

Avant il allé au end sub et maintenant il fait une erreur dessus

Avec ton code, j'ai pu voir grace a ton msgbox que le chemin ou le nom sont a vérifier

Pourtant tout est bon theoriquement

Spike
3
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
4 janv. 2005 à 17:59
Essaye çà

excel_connexion.Open()
requete_excel.CommandText = "SELECT * FROM [Sheet1$]"
requete_excel.Connection = excel_connexion


'C'est ton dataadpater qui reçoit la requete
adapter_excel.SelectCommand = requete_excel
'C'est ton dataadpter qui doit être executer
adapter_excel.SelectCommand.executenonquery()
adapter_excel.Fill(DataSet, "[Sheet1$]")


Me.grille.DataSource = DataSet.Tables("[Sheet1$]")


grille.SetDataBinding(DataSet, "[Sheet1$]")



@+
LIM
0
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007
5 janv. 2005 à 08:24
Merci de m'avoir repondu et de m'avoir aidé

mais le probleme est toujours le meme

J'ai mi un point d'arret. Des qu'il fait executeNonRequery, ca ne Fill pas le dataset. Ca va directement à end sub.

Peut etre est ce du à une version de mon document excel?

Merci

spike
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spike62300 Messages postés 73 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 14 septembre 2007
5 janv. 2005 à 10:48
C'EST BON

merci de ton aide. J'ai pu voir en fait que l'erreur que je faisais etait bien dans le nom de la premiere feuille:

C'etait: Torques Y$
d'abord j'ai mi TorquesY
ensuite j'ai mi Torques Y

C'etait tou con jte remerci encore de m'avoir aidé

A bientot

spike
0
Rejoignez-nous