Salut,
j'ai une intreface graphique sous visual basic 2010 express contenant un DataGrid que je voudrai exporter vers un fichier EXCEL. comment faire?
Remerciements.
Salut,
j'ai une intreface graphique sous visual basic 2010 express contenant un DataGrid que je voudrai exporter vers un fichier EXCEL. comment faire?
Remerciements.
on peut faire un copier coller
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 sub Export_DatagridView_to_Excel Dim objXL As New Microsoft.Office.Interop.Excel.Application Dim wbXL As Excel.Workbook Dim wsXL As New Excel.Worksheet wbXL = objXL.Workbooks.Open("C:\chemin.xls", , True) objXL.Visible = True wsXL.Range("A1").Select() copy_ClipBord() wsXL.PasteSpecial(NoHTMLFormatting:=True) objXL = Nothing wsXL = Nothing end sub
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 Sub copy_ClipBord() Form1.DataGridView1.SelectAll() Form1.DataGridView1.ClipboardCopyMode = _ DataGridViewClipboardCopyMode.EnableWithoutHeaderText If Form1.DataGridView1.GetCellCount( _ DataGridViewElementStates.Selected) > 0 Then Try ' Add the selection to the clipboard. Clipboard.SetDataObject( _ Form1.DataGridView1.GetClipboardContent()) Catch ex As System.Runtime.InteropServices.ExternalException End Try End If End Sub
Je ne connaissais pas direct le copier coller gnain, pas mal ! je m'en servirai un jour je pense ^^
Moi j'aurai essayer un truc du genre qui peut marcher mais plus long :
à modifier selon où tu veux que ça apparaisse dans ton excel ...
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 Public Sub BT_exportdata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_exportData.Click Dim cell, ligne As Integer Dim xl As New Excel.Application xl.Visible = True xl.Workbooks.Add() Try For ligne = 0 To DGV.RowCount - 1 For cell = 0 To DGV.ColumnCount - 1 xl.Cells(1, cell + 1) = DGV.Columns(cell).HeaderText xl.Cells(ligne + 2, cell + 1) = DGV.Rows(ligne).Cells(cell).Value xl.Cells(ligne + 3, cell + 1) = DGV.Rows(ligne).Cells(cell).Value Next cell Next ligne Catch ex As Exception MsgBox(ex.Message) End Try End Sub
Détaillez votre question et vous obtiendrez une réponse précise ! (c'est un peu magique)
Et si vous êtes fou de voyage bienvenue ici : http://lenormanditinerant.blogspot.fr
Cela fonctionne aussi mais beaucoup plus long car le programme doit faire aller et retour pour chaque cellule
Tandis que copier coller on le fait juste une fois.
oui mais par contre personellement j'avais besoin de quelques cellules par ci par là, à mettre par ci par là dans excel donc j'aimais bien. Ta méthode reste incontestablement plus rapide pour les grandes tables !
Détaillez votre question et vous obtiendrez une réponse précise ! (c'est un peu magique)
Et si vous êtes fou de voyage bienvenue ici : http://lenormanditinerant.blogspot.fr
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