begin process at 2008 07 04 00:57:07
1 204 456 membres
3 nouveaux aujourd'hui
14 114 membres club

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 : 13 257

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
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.
19 août 2004 17:52:17 :
  • 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

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS