Bonsoir
Je ne sais pas comment faire avec ADO.NET, mais c'est possible avec AUTOMATION (interopérabilité) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Dim xlApp As New xls.Application
Dim xlBook As xls.Workbook
Dim xlSheet As xls.Worksheet
xlBook = xlApp.Workbooks.Open(Application.StartupPath & "\ex47.xlsx")
xlSheet = CType(xlBook.Worksheets(1), xls.Worksheet)
Dim c, l As Integer
Dim xl As New xls.Application
For l = 0 To DgvResult.Rows.Count - 1
For c = 0 To DgvResult.Columns.Count - 1
Dim castRange As xls.Range = CType(xlSheet.Cells(l + 1, c + 1), xls.Range)
Dim forecolor As Color = System.Drawing.ColorTranslator.FromWin32(CInt(castRange.Font.Color))
Dim backColor As Color = System.Drawing.ColorTranslator.FromWin32(CInt(castRange.Interior.Color))
DataGridView1.Rows(l).Cells(c).Style.ForeColor = forecolor
DataGridView1.Rows(l).Cells(c).Style.BackColor = backColor
Next
Next |
avec l'import :
Imports xls = Microsoft.Office.Interop.Excel
L'inconvéniant est que ce n'est pas très rapide et si le fichier Excel est gros ...
Mais dans l'attente d'une réponse avec ADO.
Partager