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 fichier excel dans datgrid


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Août 2010
    Messages : 58
    Points : 29
    Points
    29
    Par défaut import fichier excel dans datgrid
    Bonjour tout le monde

    j'ai choisis un fichier excel, avec un openfiledilog. ce dernier doit s'afficher dans une gridview.
    j'essaye avec le code suivant:
    dans un linklabel j'appel la fonction "ImportExcel" comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      On Error Resume Next
            ImportExcel(DGV, Parcourir(Me, OpenFileDialog1), "source")
            Exit Sub
    la fonction importExcel :
    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
     Dim int(7) As String
     
        Public Sub ImportExcel(ByVal DGV As DataGridView, ByVal chemin As String, ByVal feuille As String)
            On Error Resume Next
            Dim xlApp As Excel.Application
            Dim xlWorkBook As Excel.Workbook
            Dim xlWorkSheet As Excel.Worksheet
     
            xlApp = New Excel.ApplicationClass
            xlWorkBook = xlApp.Workbooks.Open(chemin)
            xlWorkSheet = xlWorkBook.Worksheets(feuille)
            '******************* importer fichier ****************
            Dim range As Excel.Range = xlWorkSheet.UsedRange
     
            Dim cCnt As Integer
            Dim cRnt As Integer
            'Dim rCnt As Integer
            Dim Obj As New Collection
            Dim st As String
            getColumn()
            'i = 0
     
            For cCnt = 1 To range.Columns.Count
                Obj.Add(CType(range.Cells(1, cCnt), Excel.Range))
                DGV.Columns.Add(Obj(cCnt).value.ToString, Obj(cCnt).value.ToString)
            Next
            For rCnt As Integer = 2 To range.Rows.Count
                DGV.Rows.Add()
                For cCnt = 1 To range.Columns.Count
                    Obj.Add(CType(range.Cells(rCnt, cCnt), Excel.Range))
                    DGV.Item(cCnt - 1, rCnt - 2).Value = Obj(Obj.Count).value
                    DGV.Refresh()
                Next
            Next
            DGV.Refresh()
        End Sub
    dans cette fonction j'aappel la fonction "getcolumn" qui affecte les noms de premier chemps à gridview .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Public Sub getColumn()
            int(0) = "EXERCICE"
            int(1) = "N°TR"
            int(2) = "Date TR"
            int(3) = "Client"
            int(4) = "OPERATION"
            int(5) = "CAMPAGNE"
            int(6) = "MONTANT"
        End Sub
    aussi j'utilise une autre fonction :
    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
     '///////////////////////////////////// Fonction défini le parcour dum fichier xls ///////////////////////
        Public Function Parcourir(ByVal form1 As Form, ByVal OpenFileDialog1 As OpenFileDialog)
            '*********************Chemin du fichier à trouver
            Dim Chemin As String
            Chemin = ""
            '**********************Titre
            OpenFileDialog1.Title = "Chargement"
            '*********************Extension par défaut
            OpenFileDialog1.DefaultExt = "xlsx"
            '********************Filtres types fichiers
            OpenFileDialog1.Filter = "Fichier(*.xlsx)|*.xlsx"
            OpenFileDialog1.FilterIndex = 1
            '**********************Ouverture boite de dialogue OpenFile
            If OpenFileDialog1.ShowDialog(form1) = System.Windows.Forms.DialogResult.OK Then
                '******************On charge le TextBox
                Chemin = OpenFileDialog1.FileName
            End If
            Return Chemin
        End Function
    le problème c'est que le programme ce bloque après l'import du fichier.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    As-tu affiché toutes les lignes de ton code ? Si c'est le cas, tu oublies de faire de fermer excel après le traitement déjà, mais je ne suis pas sûr que ça soit la cause de ton problème.Voilà ce qu'il manque ^^ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xlWorkBook.close
    xlApp.close
    De plus, je suis supris par ça :

    Sachant que tu déclares ton xlApp en Excel.Application
    Si c'est nécessaire, explique moi, ça m'intéresse

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 39
    Points : 51
    Points
    51
    Par défaut
    Voici une solution que j'avais mis en place:

    J'espere que ca pourra t'aider.

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    Private Sub ChargerData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChargerData.Click
     
            appxls = New Microsoft.Office.Interop.Excel.Application
            appxls.Visible = False
     
            'config de l'openfiledialog 
            OpenFichierExcel.FileName = ""
            OpenFichierExcel.InitialDirectory = "C:\Users\PC\"
            OpenFichierExcel.Filter = "Fichiers Excel (*.xlsx)|*.xlsx"
            OpenFichierExcel.FilterIndex = 1
            OpenFichierExcel.Title = "ouvrir le fichier de données"
            OpenFichierExcel.RestoreDirectory = True
     
            'afficher la boite de dialogue
            Dim result As DialogResult = OpenFichierExcel.ShowDialog()
     
            'ouverture de l'application et du classeur
     
            appxls.Visible = False
            excelfile = OpenFichierExcel.FileName
            book = appxls.Workbooks.Open(excelfile)
     
            'calculer le nombre de lignes
     
            appxls.ActiveSheet.range("A1").select()
     
            Do While appxls.ActiveSheet.cells(nbre_lignes + 1, 1).value <> 0
                nbre_lignes = nbre_lignes + 1
            Loop
     
            ReDim dates(nbre_lignes)
            ReDim valeurs(nbre_lignes)
     
            CreateDataSet()
            LBL_charge_data.Text = excelfile
            LBL_charge_data.Visible = True
     
            Dim newrow1 As DataRow
     
            For i = 1 To nbre_lignes
                newrow1 = dt.NewRow
                newrow1(0) = appxls.ActiveSheet.cells(i, 1).value
                newrow1(1) = appxls.ActiveSheet.cells(i, 2).value
                dt.Rows.Add(newrow1)
     
                dates(i) = appxls.ActiveSheet.cells(i, 1).value
                valeurs(i) = appxls.ActiveSheet.cells(i, 2).value
            Next
     
     
            'Quitter Excel et fermeture fichier
     
            book.Close(True, , )
            appxls.Quit()
            book = Nothing
            appxls = Nothing
        End Sub
    et

    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
     
    'construction du dataset
        Dim ColNameStr As String = "Dates,valeurs"
        Dim ColNameArr() As String = Split(ColNameStr, ",")
        Dim ds As DataSet
        Dim dt As New DataTable("tb1")
     
     
        Private Sub CreateDataSet()
            Dim S1 As String
     
            ds = New DataSet("mondataset")
     
            'creer ma datatable
            S1 = ColNameArr(0)
            Dim cdates As New DataColumn(S1, GetType(System.Double))
            S1 = ColNameArr(1)
            Dim cvaleurs As New DataColumn(S1, GetType(System.Double))
     
            'ajout des champs a la table
            dt.Columns.Add(cdates)
            dt.Columns.Add(cvaleurs)
     
            'ajout de la table au dataset
            ds.Tables.Add(dt)
     
        End Sub

  4. #4
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Salut,

    Essaye une exécution pas à pas pour voir sur quelle ligne de code ça bloque.

    Sinon tu peux aussi utiliser ADO.net, Plus de détail sur mon blog

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

Discussions similaires

  1. Importation fichier Excel dans Cognos 8.3
    Par sydnol dans le forum Cognos
    Réponses: 2
    Dernier message: 12/05/2009, 12h58
  2. Import fichiers excel dans FIC
    Par chapeau_melon dans le forum WinDev
    Réponses: 8
    Dernier message: 27/06/2008, 16h23
  3. comment importer fichier excel dans sqlserver en delphi7
    Par PDelph7 dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/08/2007, 08h52
  4. Import fichier Excel dans Access
    Par MYNOTAURE dans le forum Access
    Réponses: 1
    Dernier message: 11/03/2007, 13h43
  5. Importation fichier Excel dans table Access
    Par kemasse dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2006, 15h12

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