Bonjour !
J'ai besoin d'aide pour un problème que je ne comprends absolument pas. Je charge un fichier excel à partir des drivers oledb et je l'utilise comme datasource d'un datagridview.
Seulement certains champs n'apparaissent pas ! Ce n'est pas aléatoire. Il s'agit de fichiers excel avec une numérotations, du texte, des unités, des quantités, des prix et des résultats. Je n'ai pas besoin de la colonne résultat, voilà un aperçu d'un fichier excel :
Mais une fois dans mon dgv, la quantité et le prix n'apparaissent pas, les cellules sont vide ! De plus, la première cellule (1,1) apparaît vide dans mon dgv... Voilà mon code de connection et de remplissage du DataSet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 161 21801 Essai. 161 21801 Montant à disposition du MO 161 21801 pour essais de tamisage, 161 21801 granulométries et essais de 161 21801 plaque. 161 21801 p = montant global p 0.16 2800.00 448.00 161 21801 p = montant global p 0.84 2800.00 2352.00
Plus bas, je fais une petite manipulation. Avant de remplir mon dgv je définis le selectionMode à Cell, ensuite je remplis mon dgv, puis j'enlève, pour toutes les colonnes, l'automaticSort (vu que je ne le veux pas) et ensuite je définis en sélection par colonne. Puisque si je fais juste un "selectionMode = fullColumn" il me dit qu'il ne peut pas à cause de l'automaticSort défini par défaut. Le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" + file + ";" & _ "Extended Properties=""Excel 8.0;HDR=No""") Dim DA As New OleDb.OleDbDataAdapter("SELECT * from [" + sheet + "$]", cn) Dim DS As New DataSet("data") DA.Fill(DS)
Bref je pense pas que ce soit cette manip qui coince, mais je préfère donner suffisamment d'infos. Le truc étrange, c'est que j'ai fait un test avec un petit fichier et que ça a fonctionné (qté + prix), mais là en faisant le test avec un gros fichier (dans lequel une quantité n'apparaît qu'au bout de .. 80 lignes) ça ne s'affiche pas (alors que l'unité pour cette quantité s'affiche).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dgv_preview.SelectionMode = DataGridViewSelectionMode.CellSelect dgv_preview.DataSource = DS.Tables(0) For i As Integer = 0 To DS.Tables(0).Columns.Count - 1 dgv_preview.Columns(i).SortMode = DataGridViewColumnSortMode.NotSortable Next i dgv_preview.SelectionMode = DataGridViewSelectionMode.FullColumnSelect
Bref je suis dans le chou, je pige pas...
Merci de votre aide.
Partager