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 !

[.NET] EXPORT DATASET TO EXCEL


Information sur la source

Catégorie :Base de Donnees Niveau : Débutant Date de création : 19/08/2004 Date de mise à jour : 19/08/2004 17:52:17 Vu : 14 626

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Juste une tite fonction qui copie le contenu d'un dataset dans un fichier excel en .NET.
J'ai eu du mal a trouver la methode donc je pense que ca peut etre un post utile.
 

Source

  • Function plop()
  • Dim ds As New DataSet
  • Dim dv0 As New DataView
  • Dim dv1 As New DataView
  • Dim i As Integer
  • Dim MyExcel As Excel.Application
  • Dim MyWorkBook As Excel.Workbook
  • Dim MyWorkSheet As Excel.Worksheet
  • ds.ReadXml("file.xml")
  • 'init Dataviews & bindings
  • dv0 = ds.DefaultViewManager.CreateDataView(ds.Tables(0))
  • dv1 = ds.DefaultViewManager.CreateDataView(ds.Tables(1))
  • MyExcel = New Excel.Application
  • MyExcel.Visible = False 'Excel will not open
  • MyWorkBook = MyExcel.Workbooks.Add
  • MyWorkSheet = MyWorkBook.ActiveSheet
  • ' Export Datas
  • MyWorkSheet.Cells(1, 1) = "tab1"
  • MyWorkSheet.Cells(1, 2) = "tab2"
  • MyWorkSheet.Cells(1, 1).Font.Bold = True
  • MyWorkSheet.Cells(1, 2).Font.Bold = True
  • Dim dr As DataRowView
  • i = 2
  • For Each dr In dv0
  • MyWorkSheet.Cells(i, 1) = dr.Item("tab1col")
  • i = i + 1
  • Next
  • i = 2
  • For Each dr In dv1
  • MyWorkSheet.Cells(i, 2) = dr.Item("tab2col")
  • i = i + 1
  • Next
  • 'Autofit the cells
  • MyWorkSheet.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit()
  • 'Save & Close
  • MyWorkBook.SaveAS("C:\file.xls")
  • MyWorkBook.Close()
  • End Function
 Function plop()
Dim ds As New DataSet
Dim dv0 As New DataView
Dim dv1 As New DataView
Dim i As Integer
Dim MyExcel As Excel.Application
Dim MyWorkBook As Excel.Workbook
Dim MyWorkSheet As Excel.Worksheet

ds.ReadXml("file.xml")
'init Dataviews & bindings
dv0 = ds.DefaultViewManager.CreateDataView(ds.Tables(0))
dv1 = ds.DefaultViewManager.CreateDataView(ds.Tables(1))

MyExcel = New Excel.Application
MyExcel.Visible = False 'Excel will not open
MyWorkBook = MyExcel.Workbooks.Add
MyWorkSheet = MyWorkBook.ActiveSheet

' Export Datas
MyWorkSheet.Cells(1, 1) = "tab1"
MyWorkSheet.Cells(1, 2) = "tab2"
MyWorkSheet.Cells(1, 1).Font.Bold = True
MyWorkSheet.Cells(1, 2).Font.Bold = True

Dim dr As DataRowView

i = 2
For Each dr In dv0
MyWorkSheet.Cells(i, 1) = dr.Item("tab1col")
i = i + 1
Next

i = 2
For Each dr In dv1
MyWorkSheet.Cells(i, 2) = dr.Item("tab2col")
i = i + 1
Next

'Autofit the cells
MyWorkSheet.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit()
'Save & Close
MyWorkBook.SaveAS("C:\file.xls")
MyWorkBook.Close()

End Function

Conclusion

Il faut prealablement loader la reference Microsoft Excel 9.0 Object Library.
 

Historique

19 août 2004 17:52:17 :

Commentaires et avis

signaler à un administrateur
Commentaire de asem67 le 29/08/2004 02:25:01

merci !!!!!

signaler à un administrateur
Commentaire de nquere le 23/09/2004 20:10:43

Merci pour ce poste utile.
Je voulais juste savoir comment utiliser avec excel et atteindre une cellule.

C'est cour et concret. Allez, 8/10 ;)

Encore merci !

signaler à un administrateur
Commentaire de Benouille le 09/12/2004 17:56:06

il y a beaucoup plus rapide en affectant la source directement par l'objet msquery d'excel.

cela permet par exemple de passer de 3-4 minutes 1 seconde pour un recorset de plusieurs milliers de lignes

la méthode consiste a affecter la source de la requete a excel. PLutot que de le remplir case par case, la requete est lancée puis affectée en un temps record. si ça interresse quelqu'un je ferais des tests et je le posterais.

merci en tout cas pour la source car moi je cherchais la référence a excel et je l'ai eu ici sans avoir à ouvrir un neurone ;)

signaler à un administrateur
Commentaire de Benouille le 10/12/2004 11:54:40

j'ai eu besoin de le faire pour moi, je vous envoie donc un lien vers la source posée ici http://www.vbfrance.com/code.aspx?ID=28101

ça fait grosso modo la meme chose en beaucoup plus rapide sur des gros volumes.

signaler à un administrateur
Commentaire de Lordthias le 06/06/2006 15:59:29

salut,
bien interessant mais il sort d'ou le "file.xml" ?

signaler à un administrateur
Commentaire de surfzoid le 28/07/2007 12:27:37

ds.writexml

signaler à un administrateur
Commentaire de chaouline le 09/03/2009 12:10:06

merci !!!!!!!!!!!!!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

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,842 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é.