Bonjour
Je travaille sur une petite application que je dois exporter des donnees enregistrer dans un fichier excel vers ma base de donnees access.
vous avez une idee
Merci
Bonjour
Je travaille sur une petite application que je dois exporter des donnees enregistrer dans un fichier excel vers ma base de donnees access.
vous avez une idee
Merci
Bonjour,
Voila un petit exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim appExcel As Excel.Application Dim sheet As Excel.Worksheet Dim wbExcel As Excel.Workbook 'Classeur Excel appExcel = CreateObject("Excel.Application") wbExcel = appExcel.Workbooks.Open("Chemin") 'ouvrir le fichier xls sheet = appExcel.ActiveWorkbook.ActiveSheet sheet = wbExcel.Worksheets(1) 'se positionner sur la feuille cible For i = 1 To 100 var= sheet.Cells(i, 1).Value 'recupere les données de la colonne A et la ligne i 'ton traitement de l'insertion dans la BDD next i
Merci Siham pour ta réponse
Dois-je ajouter une référence ?
Bonjour,
En effet, pour ajouter la référence Excel, tu va sur ton projet (nom) un click droit, puis "ajouter une référence", dans la fenetre qui s'affiche, choisis l'onglet "COM", et chercher "Microsoft Excel 12.0 (sinon 5.0) Object Library"-->OK
Voila![]()
Merci siham je teste et je te repond
salut
ca marche pas , y a t-il possibilité de le faire a l'aide d'une requete sql?
Salut,
Oui Biensur voila un bout de code, tu pourras l'adapter à tes besoins:
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 Dim mycon As System.Data.OleDb.OleDbConnection Dim Dst As System.Data.DataSet Dim mycomd As System.Data.OleDb.OleDbDataAdapter mycon = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=c:\TEST.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=No""") mycomd = New System.Data.OleDb.OleDbDataAdapter("select * from [Feuille$]", mycon) mycomd.TableMappings.Add("Table", "TestTabe") Dst = New System.Data.DataSet mycomd.Fill(Dst) 'Dst: comporte les données issues d'excel tu peux les manipulées comme tu veux, comme exemple j'ai remplis datagridview. DataGridView1.DataSource = Dst.Tables(0)
Merci Siham infiniment ca marche a merveille
Bonjour sanfour_walhan
Ceci est une issue,comme mentionne par Sihammaster.Une autre issue est d'utiliser le mapping XML supporte par tous les documents Office Excel et Word qui me parait plus consistant et expeditif.
En effet un "mappage" entre classeur et table access peut etre etabli en xml surtout si il y de grandes quantites de donnees en jeu et que la liaison est frequente .
voici l'approche et le code:
Mapping XML supporte depuis versions office 2003 sp2 & office 2007 Professionnelles.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 Imports OXL = Microsoft.Office.Interop.Excel Imports System.IO Public Class frmExcelXML ' Declare Excel Application Dim excelApp As OXL.Application ' Declare Excel WorkBook Dim WithEvents workbook1 As OXL.Workbook ' Declare XML map. Dim xmlMap1 As OXL.XmlMap ' Declare Chemin Dim cheminFichier As String = Directory.GetCurrentDirectory & "\" ' nom du filename XML . Dim xmlFilename As String = "XmlDocumentA.xml" Private Sub btnMapExcelToDT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMapExcelToDT.Click Call WorkbookXmlExportEvents() End Sub 'IMPORTATION DE DONNEES DATABLE VERS EXCEL "LIEES" PAR UN SCHEMA XSD 'SAUVEGARDE DANS UN FICHIER XML (DATATABLE & SCHEMA XSD) Private Sub WorkbookXmlExportEvents() ' Create a new Dataset and DataTable. Dim ds As New DataSet() Dim dt As System.Data.DataTable = New System.Data.DataTable dt = ds.Tables.Add("Customers") dt.Columns.Add(New DataColumn("LastName")) dt.Columns.Add(New DataColumn("FirstName")) ' Add a new row to the DataTable. Dim dr As DataRow = dt.NewRow() dr("LastName") = "Chan" dr("FirstName") = "Gareth" dt.Rows.Add(dr) ' Init Excel Application excelApp = New OXL.Application ' Add a new workbook workbook1 = excelApp.Workbooks.Add ' Init XML map & Add XML map to Workbook1. xmlMap1 = workbook1.XmlMaps.Add(ds.GetXmlSchema()) 'workbook1.XmlMaps.Add("c:\schemas\salesorder.xsd") 'Attribuer un nom pour garder une reference a ce xmlmap xmlMap1.Name = "PersonnelMap" 'Mapper range1 à Range("A1") Dim range1 As OXL.Range = workbook1.Worksheets(1).Range("A1") ' Import the data into Sheet1. workbook1.XmlImportXml(ds.GetXml(), xmlMap1, True, _ range1) ' Export data into xml file. If xmlMap1.IsExportable Then workbook1.SaveAsXMLData(cheminFichier & xmlFilename, xmlMap1) End If End Sub Private Sub workbook1_BeforeXmlExport(ByVal Map As Microsoft.Office.Interop.Excel.XmlMap, ByVal Url As String, ByRef Cancel As Boolean) Handles workbook1.BeforeXmlExport MessageBox.Show("Microsoft Excel is exporting XML from " & _ "the XmlMap.") End Sub Private Sub workbook1_AfterXmlImport(ByVal Map As Microsoft.Office.Interop.Excel.XmlMap, ByVal IsRefresh As Boolean, ByVal Result As Microsoft.Office.Interop.Excel.XlXmlImportResult) Handles workbook1.AfterXmlImport If Result = OXL.XlXmlExportResult.xlXmlExportSuccess Then MessageBox.Show("XML export succeeded.") Else MessageBox.Show("XML export failed.") End If End Sub 'IMPORTATION DE DONNEES EXCEL(XML) DANS DATABLE Private Sub btnLoadXmlIntoDT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadXmlIntoDT.Click ' Create a new DataSet. Dim newDataSet As New DataSet("New DataSet") ' Read the XML document back in. ' Create new FileStream to read schema with. Dim streamRead As New System.IO.FileStream _ (cheminFichier & xmlFilename, System.IO.FileMode.Open) ' Read the XML document into the DataSet. newDataSet.ReadXml(streamRead) ' view datable in newDataSet Me.DataGridView1.DataSource = newDataSet Me.DataGridView1.DataMember = newDataSet.Tables(0).TableName End Sub
bon code....
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager