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

Windows Forms Discussion :

datagridview=>fichier excel


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut datagridview=>fichier excel
    bonjour tout le monde
    voila j'ai un datagridview(DGV_edition) que je voudrais exporter vers un fichier excel,sauf que le nombre des lignes est tres important

    voici ma 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
    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
    Private Sub bt_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_excel.Click
     
     
            Dim save As New SaveFileDialog
     
            Dim n, i, j, c, k As Integer
     
            Dim wapp As Excel.Application
            Dim wsheet As Excel.Worksheet
            Dim wbook As Excel.Workbook
     
     
            wapp = New Excel.Application
            wbook = wapp.Workbooks.Add()
            wsheet = wapp.Sheets(1)
     
            n = DGV_edition.RowCount
     
            c = DGV_edition.Columns.Count
            i = 0
     
            While i <= n - 1
                If i = 0 Then
                    For k = 0 To c - 2
                        wsheet.Cells(1, k + 1).Value = DGV_edition.Columns(k).Name
                    Next
                End If
     
                j = i + 1
                k = 0
                While k <= c - 2
                    wsheet.Cells(j + 1, k + 1).Value = DGV_edition.Rows(j - 1).Cells(k).Value
                    k = k + 1
                End While
                i = i + 1
            End While
     
            save.Title = "Sauver le fichier exporter sous ?"
            save.DefaultExt = "xls"
            save.ShowDialog()
     
            wsheet.SaveAs("" & save.FileName & "")
            wapp.Workbooks.Close()
        End Sub
    elle marche tres bien ,mais tres lente quand je veux exporter plus de 2000 lignes

    svp auriez vous une autre fonction a me proposer plus rapide ou bien des idees pour l'ameliorer

    je vous remercie d'avance pouur votre aide

  2. #2
    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
    Par ordre décroissant de préférence (selon moi) :

    - Pour de grands volumes de données, le mieux est encore de générer un fichier csv qu'il est possible d'ouvrir avec Excel ensuite.

    - Il existe des bibliothèques (payantes ) de pilotage d'Excel directement "en binaire" (extrêmement performant).

    - Tu peux essayer de passer par une connexion type base de données : http://connectionstrings.com/?carrier=excel et http://silkyroad.developpez.com/VBA/ClasseursFermes/

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Du pilotage d'excel directement en binaire ?!?!

    Quelles sont les brutes qui ont été faire ça ?
    Kropernic

  4. #4
    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
    Citation Envoyé par griftou Voir le message
    Du pilotage d'excel directement en binaire ?!?!
    Quelles sont les brutes qui ont été faire ça ?
    Pardon, je me suis mal exprimé. Pas en binaire avec des 0 et des 1, c'est sûr que ç'aurait été assez brute comme méthode (voire impossible pour des raisons de compatibilités entre les différents OS ?).
    Plus précisément, je voulais parler du format BIFF, le format natif des fichiers Office.

    Quelques éditeurs : Aspose, Gembox. Un lecteur gratuit : projet Koogra sur SourceForge : http://sourceforge.net/projects/koogra/

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ah ok, j'me disais aussi que c'était extrême comme dll ^^

    Griftou.
    Kropernic

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    merci a vous griftou et Skalp pour vos reponses.
    j'avais essaye de passer par connexion de la base de donnee,mais j'ai pas su le faire pour l'instant.mais bon voila un sujet que je dois assimiler pour l'avenir.
    j ai trouve une belle facon pour cet export,je copie tout dans le presse_papier (tres tres rapide) puis je colle dans l'excell.

    et merci encore une fois pour vos reponses

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Tu veux bien copier ton code pour mettre dans le presse-papier?
    Quelqu'un en aura p-e besoin un jour (moi le premier ).

    Griftou.
    Kropernic

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dgv_calibre.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
     
    Private Sub CopierToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopierToolStripButton.Click
            If Me.Dgv_calibre.GetCellCount(DataGridViewElementStates.Selected) > 0 Then
                ' Add the selection to the clipboard.
                Clipboard.SetDataObject(Me.Dgv_calibre.GetClipboardContent())
            End If
        End Sub
    tu en penses quoi?

  9. #9
    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
    Effectivement, je n'y pensais plus au copier-coller

    N'oublie pas le tag

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

Discussions similaires

  1. Remplir un DataGridView avec le contenu d'un fichier excel
    Par belmansour tidjani dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/06/2018, 14h08
  2. Réponses: 4
    Dernier message: 01/04/2015, 22h29
  3. renvoyer un controle DataGridView vers un fichier excel
    Par vb.net.2008 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/08/2009, 14h20
  4. Réponses: 4
    Dernier message: 16/05/2008, 10h46

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