IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.Net + Source de données Excel] Dans un datagridview il manque des cellules !


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de Miles Raymond
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 189
    Points : 83
    Points
    83
    Par défaut [VB.Net + Source de données Excel] Dans un datagridview il manque des cellules !
    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 :

    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
    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
    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)
    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
    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 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).

    Bref je suis dans le chou, je pige pas...

    Merci de votre aide.

  2. #2
    Membre régulier Avatar de Miles Raymond
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 189
    Points : 83
    Points
    83
    Par défaut
    Bon j'ai fais un test plus massif. Repris mon fichier de test prix/quantité tout petit et j'ai fais un copier coller pour atteindre environ milles lignes dans mon xls. Ce coup-ci, il prend bien les champs quantité et prix seulement....la cellule d'en-tête de ces 2 colonnes est vide. C'est vraiment à n'y rien comprendre.

    J'ai l'impression qu'il prend les données aléatoirement... Personne n'a une petite idée vraiment ?

    EDIT : Et ça ne viens pas du lien au datagridview, quand je regarde à l'intérieur de mon dataset celui-ci contient déjà des champs manquant...

  3. #3
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Je te renvoie vers le site ConnectionStrings qui montre les différentes possibilités avec les paramètres de connexion :
    http://connectionstrings.com/?carrier=excel

    Quelques fois ça peut aider le moteur de requêtes à interpréter les données différement...

  4. #4
    Membre régulier Avatar de Miles Raymond
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 189
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Skalp Voir le message
    Je te renvoie vers le site ConnectionStrings qui montre les différentes possibilités avec les paramètres de connexion :
    http://connectionstrings.com/?carrier=excel

    Quelques fois ça peut aider le moteur de requêtes à interpréter les données différement...
    Merci merci merci merci merci !!!

    Il s'agissait bien de ma connection string ! En fait en me connectant je ne donnais pas le parmètre : IMEX = 1. Qui signifie que les champs sont tous considérés comme du texte standard. Ca fonctionne super.

    Résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. export des données excel dans une listbox vb.net
    Par amalch dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/03/2011, 11h52
  2. problème pour importer données excel dans Access
    Par sarah67 dans le forum Access
    Réponses: 8
    Dernier message: 20/02/2006, 08h17
  3. Import de données Excel dans Access
    Par Todd62 dans le forum Access
    Réponses: 12
    Dernier message: 28/12/2005, 16h11
  4. Insérer des données Excel dans une table ACCESS
    Par anikeh dans le forum Access
    Réponses: 4
    Dernier message: 21/12/2005, 22h42
  5. Insérer des données Excel dans une base Access ?
    Par MaTHieU_ dans le forum Access
    Réponses: 3
    Dernier message: 22/06/2005, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo