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

ASP.NET Discussion :

[Mise en page] Export Gridview vers Excel


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut [Mise en page] Export Gridview vers Excel
    Bonjour,

    J'utilise le code d'export Excel que l'on trouve un peu partout et qui fonctionne pas trop mal. J'avais 2 points que je n'arrive pas à régler.

    Mon GridView à l'en-tête de couleur bleu, quand je passe sur Excel c'est toute la ligne du fichier qui passe en bleu (ca dépasse du tableau pour aller jusqu'au bout du fichier.

    Comment gérer les caractères spéciaux types accents ... ceux -ci ne passe pas ds l'export ou très mal.

    Voici mon code pour info
    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
     
     public void Export_GridView_Vers_Excel(HttpResponse HttpRP, GridView Grille,String filename)
    	{
     
            try
            {
     
     
                // Efface les éventuelles données déjà dans la mémoire tampon
                HttpRP.Clear();
     
                HttpRP.AddHeader("content-disposition", "attachment;filename=" + filename + ".xls"); 
     
                //Place tout ce qui est destiné au client dans la mémoire tampon
                HttpRP.Buffer = true;
     
                //Définit le type d'informations renvoyée, ici des données au format Excel
                HttpRP.ContentType = "application/vnd.xls";
     
                //Efface le jeu de caractères actuellement défini
                HttpRP.Charset = "";
     
     
     
                //Instancie deux objets qui vont nous permettre de récupérer les données du Gridwiew : le StringWriter et l'HtmlTextWriter
                StringWriter SW = new StringWriter();
                HtmlTextWriter HT = new HtmlTextWriter(SW);
     
                //Extrait le contenu du GridView dans l'HtmlTextWriter
                Grille.RenderControl(HT);
     
                //Copie le contenu extrait dans la mémoire tampon
                HttpRP.Write(SW.ToString());
     
                //Ferme "le flux" de données et envoie les données au client
                HttpRP.End();
            }
           catch(Exception e) 
           {
               HttpRP.Write(e);
           }
     
        }
    Merci de vos infos

  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
    Par défaut
    En quoi le fait que toute la ligne soit bleue est un problème ?

    Pour les accents, tu peux jouer sur l'encodage. Pour jouer sur l'encodage, tu peux utiliser la classe StreamWriter, au lieu de StringWriter.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut
    Je teste la classe pour les accents.

    Pour la couleur, tout simplement que cela déborde du tableau, pour mieux expliquer j'ai un tableau de 3 colonnes, au lieu de mettre de la couleur sur la 1ere ligne pour ces 3 colonnes, cela mets de la couleur sur toute la colonne de la case A à IV.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut
    Désolé mais je ne vois pas comment adapter mon code avec StreamWriter

    Merci

  5. #5
    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
    Par défaut
    Citation Envoyé par dai.kaioh Voir le message
    Désolé mais je ne vois pas comment adapter mon code avec StreamWriter
    Autant pour moi, il faut obligatoirement spécifier un stream dans le constructeur, stream que tu n'as pas au moment de la déclaration.

    Ceci dit, après quelques secondes de recherche sur notre ami Google, j'ai trouvé une autre piste (sur developpez.com ). Tu peux changer l'encoding dans ta réponse HTTP. Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpRP.ContentEncoding = System.Text.Encoding.Default;
    Pour ce qui est de ton problème de couleur, c'est uniquement esthétique, tu n'es pas bloqué par ça. C'est la réponse que j'attendais... pour savoir aussi si tu ne pouvais pas t'en accomoder
    Apparement non. J'imagine que pour peindre ton entête en bleu, tu donnes la couleur à la ligne de ton entête de GridView. Du coup, Excel doit faire comme on lui dit, il peint la ligne d'entête ! Essaye de donner la couleur seulement aux cellules d'entête plutot qu'à la ligne entière et regarde ce que ça donne.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut
    Ok tout fonctionne avec cela, c'est un peu laborieux de mettre la couleur sur chaque colonne mais bon.

    Merci !

  7. #7
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    Commen t'as fait pour régler ton pb. j'ai le même pb de caractères accéntués à mettre dans excel.

    Peux-tu me dire comment t'as fait pour résoudre le problème de caractères accéntués ?

    merci bien

  8. #8
    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
    Par défaut
    La réponse est donnée ici :
    Tu peux changer l'encoding dans ta réponse HTTP. Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpRP.ContentEncoding = System.Text.Encoding.Default;
    As-tu essayé ceci ?

  9. #9
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Il existe aussi HTMLEncode et HTMLDecode, pour les accents, après faut voir si tu en as besoin

  10. #10
    Membre confirmé Avatar de Pedro Varela
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 84
    Par défaut
    En utilisant HTMLDecode, on résoud une fois pour toute le pb.
    Moi, c'est ce que j'ai fait, et ça marche.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/07/2015, 09h59
  2. exporter gridview vers excel contenu dans une page fille
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/09/2008, 15h48
  3. Exporter gridview vers excel avec combobox
    Par Pedro Varela dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/03/2008, 17h49
  4. exporte gridview vers excel
    Par faysalm2000 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/02/2008, 12h17
  5. Export Gridview vers Excel
    Par dai.kaioh dans le forum ASP.NET
    Réponses: 5
    Dernier message: 29/11/2006, 17h09

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