Bonsoir,
est-il possible d'imprimer le contenu d'un GridView sous forme d'état ?
Si oui, comment ?
Merci.:arf:
Version imprimable
Bonsoir,
est-il possible d'imprimer le contenu d'un GridView sous forme d'état ?
Si oui, comment ?
Merci.:arf:
Surement, avec un peu de travail...
Treve de plaisanterie, il faut utiliser un outil de reporting ou autre pour mettre en forme ta DataSource. Crystal report :vomi: inclus dans VS fait ca 'tres bien'.
Je développe avec Visual Web Developper 2005, qui n'inclut pas Crystal Report.
Si je comprends bien ce silence, il n'est pas possible d'imprimer le contenu d'un gridView sans passer par Crystal Report. Vrai ?
il y a plusieurs méthodes je pense
par exemple dire au grid de se déssiner sur l'objet printer et imprimer
(genre datagridview.DrawToBitmap suivi d'un printer.DrawImage)
ou faire un copier coller de toutes les cases dans excel ...
J'opterai bien bien pour la seconde solution : Copier/Coller sur Excel. Mais comment faire ?8O
suffit de demander ^^
Code:
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 Private Sub ExportExcel() Dim App As Microsoft.Office.Interop.Excel.Application Dim Wrk As Microsoft.Office.Interop.Excel.Workbook Dim sht As Microsoft.Office.Interop.Excel.Worksheet Try Dim str As New System.Text.StringBuilder(DataGridView1.Rows.Count * 100) str.Append("Titre" & vbCrLf & vbCrLf & vbCrLf) For i As Integer = 0 To DataGridView1.Columns.Count - 1 str.Append(DataGridView1.Columns(i).Caption & vbTab) Next str.Append(vbCrLf & vbCrLf) For i As Integer = 0 To DataGridView1.Rows.Count - 1 For j As Integer = 0 To DataGridView1.Columns.Count - 1 str.Append(DataGridView1.Rows(i).Item(j).ToString & vbTab) Next str.Append(vbCrLf) Next System.Windows.Forms.Clipboard.Clear() System.Windows.Forms.Clipboard.SetData(System.Windows.Forms.DataFormats.Text, str) ' création de l'appli excel App = New Microsoft.Office.Interop.Excel.Application Wrk = App.Workbooks.Add sht = CType(Wrk.Sheets.Add, Microsoft.Office.Interop.Excel.Worksheet) sht.Paste() App.Visible = True Catch ex As Exception msgbox "Erreur pendant l'export Excel") If App IsNot Nothing Then If Wrk IsNot Nothing Then Wrk.Close(False) App.Visible = True App.Quit() End If End Try End Sub
code adapté à la louche, il servait pour un datatable à l'origine ...
par contre pour la largeur des colonnes, je te laisse faire ...
ah et il faut ajouter une référence, onglet COM "microsoft office excel x object librairy" je crois
x dépend de ta version d'excel installé ...
Merci,
Je vais essayer ça et je te tiens au courant.