Bonjour,
Je voudrais exporter le contenu d'un datagridview vers excel. Pourriez vous me proposer une piste qui me permettrait éventuellement de réaliser cela ?
Merci de m'aider.
Bonjour,
Je voudrais exporter le contenu d'un datagridview vers excel. Pourriez vous me proposer une piste qui me permettrait éventuellement de réaliser cela ?
Merci de m'aider.
Bonjour HASSNA,
Voila un bout de code:
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 Dim xlApp As Excel.Application Dim xlWork As Excel.Workbook Dim xlsheet As Excel.Worksheet Dim misvalue As Object = System.Reflection.Missing.Value Dim i, j As Integer xlApp = New Excel.ApplicationClass xlWork = xlApp.Workbooks.Add(misvalue) xlsheet = xlWork.Sheets("Sheet1") For i = 0 To DataGridView1.RowCount - 2 For j = 0 To DataGridView1.ColumnCount - 1 xlsheet.Cells(j + 1, i + 1) = DataGridView1(i, j).Value.ToString Next Next xlWork.SaveAs("c:\TestDGVToExcel.xlsx") xlWork.Close() xlApp.Quit()
bonjour,
essayé ce code:
bon courage
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Dim AppExcel As Object Dim Classeur As Object Dim Feuille As Object Dim Plage As Object Dim I As Integer, J As Integer Try 'démarre l'application, la rend visible AppExcel = CreateObject("Excel.Application") AppExcel.Visible = True Classeur = AppExcel.Workbooks.Add() 'défini la feuille "Feuil1" comme 'la feuille devant recevoir les données Feuille = Classeur.Worksheets("Feuil1") 'définie la plage de travail (commence à la cellule A1) 'elle est fonction du nombre de lignes sélectionnées dans 'le DataGridView ainsi que du nombre de colonnes de ce dernier With Feuille Plage = .Range(.Cells(1, 1), _ .Cells(DataGridView1.Rows.Count + 1, _ DataGridView1.Columns.Count)) End With 'empèche le rafraîchissement de l'écran afin d'éviter les scintillements AppExcel.ScreenUpdating = False 'entêtes des colonnes For I = 0 To DataGridView1.Columns.Count - 1 Plage(1, I + 1) = DataGridView1.Columns(I).Name Next 'données For I = 0 To DataGridView1.Rows.Count - 1 For J = 0 To DataGridView1.Rows(I).Cells.Count - 1 Plage(I + 2, J + 1) = DataGridView1.Rows(I).Cells(J).Value Next Next 'formatage de la plage With Plage 'ligne des entêtes en gras, centrée verticalement et horizontalement .Rows(1).Font.Bold = True .Rows(1).HorizontalAlignment = -4108 .Rows(1).VerticalAlignment = -4108 'cadrillage fin dans la plage et bordure plus épaisse For I = 7 To 12 .Borders(I).LineStyle = 1 'trait continu Select Case I Case 7 To 10 'cadre .Borders(I).Weight = -4138 Case 11, 12 'cadrillage .Borders(I).Weight = 2 End Select Next 'ajuste les colonnes au contenu .EntireColumn.AutoFit() End With 'rafraîchi l'écran AppExcel.ScreenUpdating = True Catch ex As Exception MsgBox(ex.Message) End Try
Merci de votre réponse je veux essayer cette reponse
Bonjour,
Voilà le code que j'utilise dans un de mes programmes; Je passe par une RichTextBox qui me sert de tampon. Ensuite avec un SaveFileDialog, j'export le contenu de ma RichTextBox dans un fichier CSV.
Pour chaque enregistrement, tu saute une ligne pour que le contenu de ta RichTextBox soit de ce type :
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
23
24
25
26 Private Sub b_exportResult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_exportResult.Click 'Création CSV. 'sfd_exportDataStat.Filter = "Excel|*.csv|" rtbx_tamponCsv.Text = tbx_titreReq.Text rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & vbCrLf rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & vbCrLf For i = 0 To dgv_resultatRequete.ColumnCount - 1 rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & dgv_resultatRequete.Columns(i).Name & ";" Next rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & vbCrLf rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & vbCrLf For ligne = 0 To dgv_resultatRequete.RowCount - 1 For colonne = 0 To dgv_resultatRequete.ColumnCount - 1 rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & dgv_resultatRequete.Rows(ligne).Cells(colonne).Value & ";" Next rtbx_tamponCsv.Text = rtbx_tamponCsv.Text & vbCrLf Next If sfd_exportDataStat.ShowDialog() = DialogResult.OK Then rtbx_tamponCsv.SaveFile(Replace(sfd_exportDataStat.FileName, "csv", "") & Replace(Now.Today.ToShortDateString, "/", "-") & ".csv", RichTextBoxStreamType.PlainText) End If End Sub Private Sub dgv_resultatRequete_DataBindingComplete(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) Handles dgv_resultatRequete.DataBindingComplete b_exportResult.Enabled = True End Sub
valeur1; Valeur2;Valeur3
Vaeur11;Valeur12;Valeur13
Chaque ";" dis que tu passe à la colonne suivante.
Chaque saut de ligne dis que tu passe à la ligne suivante dans excel.
Tu peu cacher ton Richtextbox bien sûr.
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