GÉNÉRER UN FICHIER EXCEL À PARTIR D'UN DATASET

Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
- - Dernière réponse : l0ren
Messages postés
2
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
11 août 2007
- 22 août 2007 à 14:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33699-generer-un-fichier-excel-a-partir-d-un-dataset

Afficher la suite 
l0ren
Messages postés
2
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
11 août 2007
-
Merci pour cette source.
Les références COM à rajouter sont :
Microsoft Office X.0 Object Library & Microsoft Excel X.0 Object Library

Vous devriez alors avoir Excel, Microsoft.Office.Core, stdole et VBIDE

J'ai modifier ta source pour qu'elle n'exporte qu'une table vers Excel :

Private Sub ExporterDataSetVersExcel(ByVal myTable As DataTable, ByVal cheminFichier As String)

Dim myRow As DataRow
Dim myColumn As DataColumn

Dim app As New Excel.Application
Dim exbook As Excel.Workbook
Dim exsheet As Excel.Worksheet

Try
exbook = app.Workbooks.Add
exsheet = exbook.Sheets(1)

Dim i, j As Integer

For i = 0 To myTable.Columns.Count - 1
exsheet.Cells(1, i + 1) = myTable.Columns(i).ColumnName
Next

Dim ligneDebut As Integer = 2
For i = 0 To myTable.Rows.Count - 1
For j = 0 To myTable.Columns.Count - 1
exsheet.Cells(ligneDebut + i, j + 1) = myTable.Rows(i)(j).ToString
Next
Next

exbook.SaveAs(cheminFichier)

Catch ex As Exception
Throw ex
Finally
If Not exbook Is Nothing Then exbook.Close()
If Not app Is Nothing Then app.Quit()
End Try
End Sub
cs_chaton76
Messages postés
1
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
20 avril 2006
-
Pour répondre à Benouille, il est en effet impossible que ce code fonctionne avec plusieurs tables dans le dataSet. Si quelqu'un désire le code modifié en C# je vous l'envoie.
lordskyser1
Messages postés
84
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
1 juillet 2006
-
Très bien comme petit exemple. Juste un petit défaut, lorsqu'on sélectionne une table d'une base, que l'on génère le dataset, il n'est pas possible par la suite de sélectionner une table d'une autre base et de générer un autre dataset pour l'exporter vers excel sans redémarrer l'application.
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
Le format de fichier Access utilise le moteur Jet qui est tout à fait un moteur de base de données, le fait de tout mettre dans 1 seul fichier ne change rien à l'affaire. A l'intérieur y sont stockés les différentes tables, indexes, relations, etc... Un moteur SQL complet est aussi intégré.
cs_Benouille
Messages postés
216
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
7 septembre 2007
1 -
Access n'est pas nue base de données c'est un fichier de données.

bon moi y a un truc qui me turlupine:
# For Each myTable In unDataSet.Tables
# For Each myRow In myTable.Rows
# i = 1
# For Each myColumn In myTable.Columns
# exsheet.Cells(j, i) = CType(myRow(myColumn) & "", String)
# i += 1
# Next myColumn
# j += 1
# Next myRow
# Next myTable

avec un for each matable je m'attends a ajouter une feuille a excell
parceque si y a 2 tables ça va réécrire sur la premiere non ?


la je peux pas tester je suis sur un vieux linux sans .net ni meme excel :D
et puis bon j'ai pas de gros de doutes non plus.

vb nouille, le roi de l'éppat'