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 :

exporter datagridview dans ordre decroissant


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut exporter datagridview dans ordre decroissant
    Bonjour,

    Debutant en vb.net je voudrais savoir comment exporter un datagridview vers excel mais dans un ordre decroissant.

    Pour l'instant j'ai un code qui fonctionne mais qui exporte le datagrid dans l'ordre ou il est afficher a l'ecran.

    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
    Dim xlApp As Excel.Application
     Dim xlBook As Excel.Workbook
     Dim xl As Excel.Worksheet
     
     xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
     xlBook = CType(xlApp.Workbooks.Add, Excel.Workbook)
     xl = CType(xlBook.Worksheets(1), Excel.Worksheet)
     
    Dim i As Integer = DataGridView.Rows.Count - 1 
    Dim j As Integer = DataGridView.Columns.Count - 1 
    Dim i, j, x, y As Integer
     
    For x = 0 To i
         For y = 0 To j
                 xl.Cells(x + 1, y) = DataGridView(x, y).Value.ToString
         Next
    Next

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour Gregney,
    Bienvenue sur développez.
    Quelques précisions :
    -Sur quel colonne veux tu trier tes données.
    - Est ce un trie simple sur une valeur ou un string ?
    Merci de tes précisions.
    A bientôt.
    Wakan

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Bonsoir wakan et merci pour ton accueil

    J'ai un datagridview avec une colonne avec des pays et une seconde avec des ville.

    Pour l'instant mon datagridview est trier par ordre alphabetique des pays et des villes. (Je dois le garder présenter de cette façon).

    Et je voudrais pouvoir l'exporter sur excel dans l'ordre ou il est afficher ( ce qui marche avec le code que j'ai copier) mais je voudrais pouvoir l'exporter dans le sens inverse ( dans A1 la derniere ligne de mon DGV ...)).

    Merci pour l'interet que vous portez a mon topic =D.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    En utilisant une requête linq avec comme source de donnée les rows de ton datagridview:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    From c As DataGridViewRow in DataGridView.Rows _
    Select Ville=c.Cells(0).Value, Pays=c.Cells(1).Value _
    Order By Ville Ascending
    Ensuite tu utilise le résulats de la requête pour faire l'export Excel.

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Citation Envoyé par sinople Voir le message
    En utilisant une requête linq avec comme source de donnée les rows de ton datagridview:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    From c As DataGridViewRow in DataGridView.Rows _
    Select Ville=c.Cells(0).Value, Pays=c.Cells(1).Value _
    Order By Ville Ascending
    Ensuite tu utilise le résulats de la requête pour faire l'export Excel.
    Bonsoir et merci pour votre aide

    Désolé Sinople mais je ne vois pas ce que tu veux dire je debute tout juste avec vb.net. En utilisant un exemple de requete linq trouve sur internet j'ai essayé mais j'ai eu aucun resultat donc je pense que j'ai du mal comprendre y aurait il moyen que tu me m'explique si to plais?

    Sinon je me demandé s' il est possible ( voir meme plus simple d'exporter le datagridview en mettant la premiere ligne, la derniere ligne, la seconde, l'avant derniere ...)

    Etant donne que je cherche a avoir la liste des pays dans un ordre "inutilisé" par l'association

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir Gregney,

    Teste ce qui suit, à partir de ton code et en inversant le sens du parcours de lignes (en partant du bas) "For x = i To 0 Step -1" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            For x = i To 0 Step -1
                For y = 0 To j
                    xl.Cells(x + 1, y) = DataGridView1(x, y).Value.ToString
                Next
            Next
    Par contre, je suis surpris que tu n'est pas d'erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xl.Cells(x + 1, y) = DataGridView1(x, y).Value.ToString
    car pour Excel "xl.Cells(x + 1, y) " y ne peut être égal à zéro puisque il n'existe pas de colonne 0 ni de ligne 0 d'ailleurs ?

    Hervé.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonsoir Gregney,

    Teste ce qui suit, à partir de ton code et en inversant le sens du parcours de lignes (en partant du bas) "For x = i To 0 Step -1" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            For x = i To 0 Step -1
                For y = 0 To j
                    xl.Cells(x + 1, y) = DataGridView1(x, y).Value.ToString
                Next
            Next
    Par contre, je suis surpris que tu n'est pas d'erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xl.Cells(x + 1, y) = DataGridView1(x, y).Value.ToString
    car pour Excel "xl.Cells(x + 1, y) " y ne peut être égal à zéro puisque il n'existe pas de colonne 0 ni de ligne 0 d'ailleurs ?

    Hervé.
    Bonsoir et merci pour votre reponse

    J'ai essayé votre code est il m'affiche toujours mon datagridview dans l'odre auquel il apparait a l'ecran

    Sinon pour mon code moi aussi j'aii trouvé sa bizarre sachant que je lise partout que en vb les lignes et colonnes commencer a 1 mais quand je mettais 1 la premiere ligne de mon datagridview ne s'afficher pas

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 34
    Par défaut
    Citation Envoyé par Gregney Voir le message
    Bonsoir et merci pour votre aide

    Désolé Sinople mais je ne vois pas ce que tu veux dire je debute tout juste avec vb.net. En utilisant un exemple de requete linq trouve sur internet j'ai essayé mais j'ai eu aucun resultat donc je pense que j'ai du mal comprendre y aurait il moyen que tu me m'explique si to plais?

    Sinon je me demandé s' il est possible ( voir meme plus simple d'exporter le datagridview en mettant la premiere ligne, la derniere ligne, la seconde, l'avant derniere ...)

    Etant donne que je cherche a avoir la liste des pays dans un ordre "inutilisé" par l'association
    Eu pour exporter ton datagrid de cette façon je te proposerai bien d'essayer de déclarer une variable x qui commence a la première ligne et une autre y qui part de la dernière ligne tu exporte chacune de te variable ( puis tu incrémente la première et décrémente la deuxième) jusqu'à' a tes deux variables soit égale.

    Je dit juste sa mais je ne sais ABSOLUMENT pas si sa fonction, je debute a peine avec vb et donc sa serait bien si quelqu'un pourrai confirmer ou infirmer ce que je veux d'ecrire


    en tout cas bon courage

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Apres plusieurs heures d'essaie j'ai enfin reussi =) Merci beaucoup a Brialex pour ton idée et a Theze pour ton bout de code

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

Discussions similaires

  1. Exporter les données Datagridview dans fichier pdf
    Par raulily dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 12/07/2013, 18h30
  2. Réponses: 2
    Dernier message: 07/07/2010, 16h23
  3. Réponses: 3
    Dernier message: 07/11/2005, 16h39
  4. Syntaxe tableaux dans ordre SQL INSERT
    Par lio33 dans le forum SQL
    Réponses: 6
    Dernier message: 19/10/2005, 17h07
  5. export table dans un fichier texte
    Par cchampion2fr dans le forum Access
    Réponses: 23
    Dernier message: 07/09/2005, 11h33

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