Accès aux fichiers Excel

Le
michel.arnoux
Bonjour,

D'abord merci pour les réponses aux questions sur
- Correction d'une Saisie
- Sortie Contenu d'une ComboBox
elles m'ont permis de sortir d'une situation de bloquage

Maintenant je voudrais sortir des articles à plusieurs champs(de style
articles comptables) dans un fichier Excel, donc :
- ouvrir ce fichier
- dimensionner les colonnes
- mettre Champ(i) dans Colonne(i)
- positionner sur la ligne suivante
-
A l'inverse je voudrais pouvoir rentrer ces données (contenues dans un
fichier Excel)
- ouvrir ce fichier
- se positionner sur la ligne i ou travailler en entrée séquentielle
- mettre Colonne(j) dans Champ(j)
-

M'excusant de poser une question aussi basique, mais il me faut encore
passer ce cap
Bonne journée
Michel Arnoux
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ydom
Le #15377161
Bonjour,

Voici deux exemples qui, chez moi ont marché pour ouvrir une feuille excel
et la manipuler à partir de VS2005:

1) Valable pour “Windows XP”/ Excel 7:
- On a mis dans "nomclas" le nom complet du classeur excel:
"C:/sss/zzz:YYY.xls".
- Au préalable il faut avoir déclaré Excel en référence: Barre
d'outil/'projet'/'ajouter une référence'/ onglet: COM-> sélectionner:
'Microsoft.ExcelL 8.0 Object Library'

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

xlApp = CType(CreateObject("Excel.Application"),
Microsoft.Office.Interop.Excel.Application)
xlBook = CType(xlApp.Workbooks.Open(nomclas),
Microsoft.Office.Interop.Excel.Workbook)
‘Pour ajouter une feuille :
xlSheet = CType(xlBook.Worksheets.Add,
Microsoft.Office.Interop.Excel.Worksheet)

‘Pour accéder à une feuille existante nommée ici, "synthèse" :
xlsheet1 = CType(xlBook.Worksheets(“synthèse”),
Microsoft.Office.Interop.Excel.Worksheet)
'pour faire apparaître la feuille:
xlsheet1.application.visible = True
'pour modifier une cellule (ici (2,2):
xlSheet1.Cells(2, 2).value = "Cette colonne est: B row 2"



2) Autre exemple pour créer puis charger une base de donnée avec une feuille
Excel qui contient deux feuilles nommées "DATAPOOL_COMPLET" et "def_packets".
Le nom complet de la feuille Excel est saisi dans une "textbox" nommée
"textbox1". Ce nom est de la forme: C:/sss/zzz/yyy/www.xls:

'Création de la base de donnée contenant deux tables:
Dim dspackdef As New System.Data.DataSet()
Dim table As DataTable

dspackdef.Tables.Add("def_pac")
dspackdef.Tables.Add("datapool")

'Ensuite on a rempli ces tables à partir des deux feuilles du classeur par :
Dim cn As System.Data.OleDb.OleDbConnection
Dim cmd As System.Data.OleDb.OleDbDataAdapter
cn = New
System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" & "data
source=" & textBox1.Text & ";Extended Properties=Excel 5.0;")
' Select the data from the sheet 'def paquets' of the workbook.
cmd = New System.Data.OleDb.OleDbDataAdapter("select * from [def_paquets$]",
cn)
' Select the data from the sheet 'DATAPOOL_COMPLET' of the workbook.
cmd2 = New System.Data.OleDb.OleDbDataAdapter("select * from
[DATAPOOL_COMPLET$]", cn)

cn.Open()
cmd.Fill(dspackdef.Tables("def_pac"))
cmd2.Fill(dspackdef.Tables("datapool"))
cn.Close()

Puis on a manipulé les tables par les appels :
table = dspackdef.Tables("def_pac")
‘puis, par exemple, lire le contenu de la colonne 0 :
For Each row In table.Rows
Valeur= Row.Item(0)
Next

‘et :
table = dspackdef.Tables("datapool")
‘puis, par exemple :
For Each row In table.Rows
Valeur= Row.Item(0)
Next

Voilà, j'espère que ceci peut t'aider.

--
ydom


"" a écrit :

Bonjour,

D'abord merci pour les réponses aux questions sur
- Correction d'une Saisie
- Sortie Contenu d'une ComboBox
elles m'ont permis de sortir d'une situation de bloquage

Maintenant je voudrais sortir des articles à plusieurs champs(de style
articles comptables) dans un fichier Excel, donc :
- ouvrir ce fichier
- dimensionner les colonnes
- mettre Champ(i) dans Colonne(i)
- positionner sur la ligne suivante
- ...
A l'inverse je voudrais pouvoir rentrer ces données (contenues dans un
fichier Excel)
- ouvrir ce fichier
- se positionner sur la ligne i ou travailler en entrée séquentielle
- mettre Colonne(j) dans Champ(j)
- ...

M'excusant de poser une question aussi basique, mais il me faut encore
passer ce cap
Bonne journée
Michel Arnoux





Publicité
Poster une réponse
Anonyme