Bonjour à tous
Je suis débutant avec Visual Studio que je souhaite utiliser en vb, car très expérimenté en vba.
Je parviens à charger dans un datagridview le contenu d'un fichier csv en passant par une datatable
Si je définis par avance la structure du datagridview (les colonnes, leur noms...), le binding du datatable ajoute quand même des colonnes au datagridview.
Si je ne définis pas la structure, je n'arrive pas à trouver comment agir une fois le datagridview alimenté par le datatable.
Ce que je souhaite, c'est pouvoir paramétrer les colonnes chargées depuis la datatable.
Par exemple, je veux que la colonne date du datatable soit colorée en vert dans le datagridview.
J'imagine que ça ne se paramètre pas dans le datatable ?
Voici mon code (où la structure du datagridview n'est pas définie à l'avance)
merci !
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 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim csvPath As String = "C:\itunes\test.csv" 'Create a DataTable. Dim dt As New DataTable() ' Create typed columns in the DataTable. dt.Columns.Add("Dep", GetType(Char)) dt.Columns.Add("Date", GetType(DateTime)) dt.Columns.Add("P", GetType(Integer)) dt.Columns.Add("T", GetType(Integer)) dt.Columns.Add("Classe", GetType(String)) Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\itunes\test.csv") MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(";") Dim currentRow As String() Dim numCol As Integer While Not MyReader.EndOfData dt.Rows.Add() Try currentRow = MyReader.ReadFields() Dim currentField As String numCol = 0 For Each currentField In currentRow dt.Rows(dt.Rows.Count - 1)(numCol) = currentField numCol = numCol + 1 Next Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End Try End While Dim bs As New BindingSource bs.DataSource = dt DG1.DataSource = bs End Using End Sub
PS : les nombreuses réponses trouvées sur le web sont essentiellement pour du C#, pas du VB. Est-ce un mauvais choix de ma part ?
Partager