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 :

Import excel vers Datagrideview avec Vb 2010


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut Import excel vers Datagrideview avec Vb 2010
    Bonjour;
    Je développe un petit programme en VB 2010 express; je dois importer un fichier excel (en pièce jointe: Feuil1 ) vers mon datagrideview1

    j'utilise le code ci-dessous; qui marche bien mais j'ai un problème: le format de mon affichage dans le datagrideview1 n'est pas bon:
    je m'explique: dans le fichier excel j'ai des formats en hh:mm:ss or le résultat dans le datagrideview1 n'a pas le même format ( je l'ai mis dans l'onglet Feuil2 du même fichier ci-joint)
    Merci de m'aider de trouver comment résoudre ce problème d'affichage.
    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
     Dim OpenFileDialog1 As New OpenFileDialog
            Dim dt As New DataTable
            If OpenFileDialog2.ShowDialog = Windows.Forms.DialogResult.OK Then
                Dim FileName As String = OpenFileDialog2.FileName.ToUpper
                Dim Builder As New OleDbConnectionStringBuilder With {.DataSource = FileName}
     
                ' Setup the properties for our connection dependent on which file was open.
     
                If IO.Path.GetExtension(FileName) = ".XLSX" Then
                    Builder.Provider = "Microsoft.ACE.OLEDB.12.0"
                    Builder.Add("Extended Properties", "Excel 8.0;HDR=No;")
     
                Else
                    Builder.Provider = "Microsoft.Jet.OLEDB.4.0"
                    Builder.Add("Extended Properties", "Excel 8.0;HDR=No;")
                End If
     
     
                Using cn As New OleDbConnection With {.ConnectionString = Builder.ConnectionString}
                    Dim cmd As New OleDbCommand With _
                    { _
                        .CommandText = "SELECT * FROM [Feuil1$]", _
                        .Connection = cn _
                    }
     
                    cn.Open()
     
                    dt.Load(cmd.ExecuteReader)
                    DataGridView1.DataSource = dt
                    ActiveControl = DataGridView1
     
                End Using
            End If
        End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Tu 2 possibilité formater les colonnes de ton fichier Excel (texte,numérique,date),
    Ou formater les champs dans ta requête!
    "SELECT cdate(mytime) as T, cdbl(mydouble) as D FROM [Feuil1$]"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Merci pour ton retour
    je pense que j'ai mal compris les instructions dans la requette SELECT
    j'ai utilisé ton code mais ce ne marche pas, j'ai une erreur sur SELECT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT cdate(mytime) as T, cdbl(mydouble) as D FROM [Feuil1$]"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai utilisé ton code mais ce ne marche pas, j'ai une erreur sur SELECT
    rien d'étonnant je ne connais pas le nom des champs dans ta base Excel!

    Un exemple n'a pour objet que d'être un exemple!

    "SELECT cdate(toto) as T, cdbl(titi) as D FROM [Feuil1$]"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    désolé pour ce retour tardif... congés oblige... mais je n'arrive pas.. je m'explique stp...
    j’essaie d'importer un fichier excel vers mon datagrideview1 avec le code ci-dessous qui marche bien mais ne convertie pas au bon format.
    Dans mon fichier excel en pièce jointe ( Feuil1) j'ai des chiffres, des lettres et des formats( hhh,mm,ss) et le résultat de l'import je l'ai mis pour info dans Feuil2
    je ne comprends pas comment utiliser ton code... desolé je ne suis pas un expert...)
    Merci encode de ton aide
    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
     
     Dim OpenFileDialog1 As New OpenFileDialog
            Dim dt As New DataTable
            If OpenFileDialog2.ShowDialog = Windows.Forms.DialogResult.OK Then
                Dim FileName As String = OpenFileDialog2.FileName.ToUpper
                Dim Builder As New OleDbConnectionStringBuilder With {.DataSource = FileName}
     
                ' Setup the properties for our connection dependent on which file was open.
     
                If IO.Path.GetExtension(FileName) = ".XLSX" Then
                    Builder.Provider = "Microsoft.ACE.OLEDB.12.0"
                    Builder.Add("Extended Properties", "Excel 8.0;HDR=No;")
     
                Else
                    Builder.Provider = "Microsoft.Jet.OLEDB.4.0"
                    Builder.Add("Extended Properties", "Excel 8.0;HDR=No;")
                End If
     
     
                Using cn As New OleDbConnection With {.ConnectionString = Builder.ConnectionString}
                    Dim cmd As New OleDbCommand With _
                    { _
                        .CommandText = "SELECT * FROM [Feuil1$]", _
                        .Connection = cn _
                    }
     
                    cn.Open()
     
                    dt.Load(cmd.ExecuteReader)
                    DataGridView1.DataSource = dt
                    ActiveControl = DataGridView1
     
                End Using
            End If
        End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Désolé j'avais pas vue que dans ta connexion tu précisais HDR=No;, donc par défaut le entête de colonnes sont H1,H2, etc... Comprendre H1=A1, H2=B1 etc...

    "SELECT cdate(H1),H2,etc FROM [Feuil1$]"

Discussions similaires

  1. [AC-2003] Import Excel vers Access avec choix du répertoire et du fichier *.xls
    Par jeanpierre78 dans le forum IHM
    Réponses: 12
    Dernier message: 19/10/2011, 12h14
  2. Réponses: 3
    Dernier message: 06/05/2011, 11h39
  3. Réponses: 25
    Dernier message: 26/04/2011, 13h58
  4. Réponses: 3
    Dernier message: 13/03/2010, 22h37
  5. import excel vers access avec bouton "parcourir"
    Par zeloutre dans le forum Access
    Réponses: 3
    Dernier message: 04/04/2007, 19h06

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