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 :

Export Gridview --> Excel : problème de texte converti en date


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut Export Gridview --> Excel : problème de texte converti en date
    Bonjour,

    j'utilise le code suivant pour exporter un gridview au format Excel :
    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
     
    protected void exportToExcel(ref GridView gv)
    {                
       string attachment = "attachment; filename=gpu.xls";
       Response.ClearContent();
       Response.AddHeader("content-disposition", attachment);
       Response.ContentType = "application/ms-excel";
       Response.ContentEncoding = System.Text.Encoding.Default;
       StringWriter stw = new StringWriter();
       HtmlTextWriter htextw = new HtmlTextWriter(stw);
     
       gv.RenderControl(htextw);
       Response.Write(stw.ToString());
       Response.End();                    
    }
    Tout fonctionne bien si ce n'est que dans une colonne texte de mon gridview, j'ai des valeurs du genre "13/1" et dans mon fichier excel, je me retrouve avec un format "13 janv." et si je veux convertir la colonne en texte, ça me transforme la valeur en nombre.

    quelqu'un peut-il m'indiquer le moyen d'éviter que mon champ soit converti ?

    Merci !

    Steve

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Salut,

    Si tu rajoute un ' devant tes valeurs, ça devrait être mieux. Je viens de tester.

    En espérant que ça t'aura aidé.

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Hello,

    le problème est que je ne sais pas sur quelle colonne/cellule le problème va arriver car j'ai beaucoup de colonnes et en plus le gridview a différentes vues (affichage/masquage de certaines colonnes selon les critères de l'utilisateur...) donc au final j'ai testé la méthode suivante qui a l'air de fonctionner (source : http://shawpnendu.blogspot.com/2009/...word-text.html)
    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
     
                        string txtstyle = @"<style>.txt { mso-number-format:'\@'; }</style>";
                        foreach (GridViewRow oItem in gv.Rows)
                            foreach(TableCell gCell in oItem.Cells)
                                gCell.Attributes.Add("class", "txt");
     
     
                        string attachment = "attachment; filename=gpu.xls";
                        Response.ClearContent();
                        Response.AddHeader("content-disposition", attachment);
                        Response.ContentType = "application/ms-excel";
                        Response.ContentEncoding = System.Text.Encoding.Default;
                        StringWriter stw = new StringWriter();
                        HtmlTextWriter htextw = new HtmlTextWriter(stw);
                        Response.Write(txtstyle);
     
                        gv.RenderControl(htextw);
                        Response.Write(stw.ToString());
                        Response.End();
    En fait je force chaque cellule à prendre un format text. Ca génère des warning dans Excel (lorsqu'un nombre s'affiche en format texte) mais l'utilisateur peut tout de même travailler avec les données dans un format correcte.

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

Discussions similaires

  1. [Mise en page] Export Gridview vers Excel
    Par dai.kaioh dans le forum ASP.NET
    Réponses: 9
    Dernier message: 15/03/2008, 12h41
  2. exporte gridview vers excel
    Par faysalm2000 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/02/2008, 12h17
  3. Long numérique et export Gridview en Excel
    Par pitbulle dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/09/2007, 19h37
  4. Export Gridview vers Excel
    Par dai.kaioh dans le forum ASP.NET
    Réponses: 5
    Dernier message: 29/11/2006, 17h09
  5. Réponses: 1
    Dernier message: 01/11/2005, 12h04

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