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
| Dim c, l As Integer
Dim xl As New xls.Application
xl.Workbooks.Add()
For c = 0 To DgvResult.Columns.Count - 1
' +++++ j'affiche sur la 1ere ligne, les noms des colonnes du Datagridview (DgvResult).
'*** Cast de la cellule pour y accéder depuis VB.NET strict.
Dim castRange As xls.Range = CType(xl.Cells(1, c + 1), xls.Range)
Select Case c + 1
Case 1 : castRange.ColumnWidth = 30
Case 2 : castRange.ColumnWidth = 15
Case 3 : castRange.ColumnWidth = 40
' ETC....
End Select
'' *** ou faire un calcul savant
'castRange.ColumnWidth = DgvResult.Columns(c).Width / 5
castRange.Borders.Color = RGB(255, 0, 0)
castRange.Borders.Weight = xls.XlBorderWeight.xlThick
castRange.Borders.LineStyle = xls.XlLineStyle.xlDouble
castRange.Interior.Color = 10092543
castRange.HorizontalAlignment = xls.XlHAlign.xlHAlignCenter
castRange.Font.Size = 14
castRange.Font.Color = RGB(0, 0, 255)
castRange.Font.Bold = True
castRange.Value = DgvResult.Columns(c).HeaderText
Next
' +++++ je remplis les cellules du fichier Excel avec les valeurs de DgvResult à partir de la 2ième ligne (l+2).
For l = 0 To DgvResult.Rows.Count - 1
For c = 0 To DgvResult.Columns.Count - 1
Dim castRange As xls.Range = CType(xl.Cells(l + 2, c + 1), xls.Range)
castRange.Borders(xls.XlBordersIndex.xlEdgeLeft).LineStyle = xls.XlLineStyle.xlContinuous
castRange.Borders(xls.XlBordersIndex.xlEdgeLeft).Color = RGB(255, 0, 0)
castRange.Borders(xls.XlBordersIndex.xlEdgeRight).LineStyle = xls.XlLineStyle.xlContinuous
castRange.Borders(xls.XlBordersIndex.xlEdgeRight).Color = RGB(255, 0, 0)
castRange.Value = DgvResult.Rows(l).Cells(c).Value
If l = DgvResult.Rows.Count - 1 Then
castRange.Borders(xls.XlBordersIndex.xlEdgeBottom).LineStyle = xls.XlLineStyle.xlContinuous
castRange.Borders(xls.XlBordersIndex.xlEdgeBottom).Color = RGB(255, 0, 0)
End If
Next
Next
'*** A placer à la fin pour éviter de visualiser le temps de chargement.
xl.Visible = True |
Partager