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 :

GridView export Excel


Sujet :

ASP.NET

  1. #1
    Membre Expert
    Avatar de vpourchet
    Homme Profil pro
    Integrateur Systemes & Virtualisation
    Inscrit en
    Avril 2008
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Integrateur Systemes & Virtualisation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 159
    Par défaut GridView export Excel
    Bonjour à tous,

    Apres maintes recherche j'ai décidé une fois de plus de faire appel aux spécialistes du forum pour un probleme de gridview. En effet je bind ma gridview sur le résultat d'une requete SQL et l'affiche dans ma page, ça c'est OK.

    Ensuite j'ai un bouton permettant d'exporter au format excel la grid view en utilisant les codes suivants issus du net :

    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
     
     private void exportXls()
            {          
                        String Attachement = "attachment; filename=MAP_EXPORT_" + DateTime.Now.ToShortDateString() + ".xls";
                        Response.ClearContent();
                        Response.AddHeader("content-disposition", Attachement);
                        Response.ContentType = "application/ms-excel";
                        StringWriter sw = new StringWriter();
                        HtmlTextWriter htw = new HtmlTextWriter(sw);
                        HtmlForm frm = new HtmlForm();
                        frm.Attributes["runat"] = "server";
                        PrepareGridViewForExport(gvDevice);
                        gvDevice.Parent.Controls.Add(frm);
                        frm.Controls.Add(gvDevice);
                        PrepareGridViewForExport(gvIdPerfMin);
                        gvIdPerfMin.Parent.Controls.Add(frm);
                        frm.Controls.Add(gvIdPerfMin);
                        PrepareGridViewForExport(gvIdPerfAvg);
                        gvIdPerfAvg.Parent.Controls.Add(frm);
                        frm.Controls.Add(gvIdPerfAvg);
                        PrepareGridViewForExport(gvIdPerfMax);
                        gvIdPerfMax.Parent.Controls.Add(frm);
                        frm.Controls.Add(gvIdPerfMax);
                        frm.RenderControl(htw);
                        Response.Write(sw.ToString());
                        Response.End();
     
            }
    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
     
    private void PrepareGridViewForExport(Control gv)
            {
                LinkButton lb = new LinkButton();
                Literal l = new Literal();
                string name = String.Empty;
                for (int i = 0; i < gv.Controls.Count; i++)
                {
                    if (gv.Controls[i].GetType() == typeof(LinkButton))
                    {
                        l.Text = (gv.Controls[i] as LinkButton).Text;
                        gv.Controls.Remove(gv.Controls[i]);
                        gv.Controls.AddAt(i, l);
                    }
                    else if (gv.Controls[i].GetType() == typeof(DropDownList))
                    {
                        l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
                        gv.Controls.Remove(gv.Controls[i]);
                        gv.Controls.AddAt(i, l);
                    }
                    else if (gv.Controls[i].GetType() == typeof(CheckBox))
                    {
                        l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";
                        gv.Controls.Remove(gv.Controls[i]);
                        gv.Controls.AddAt(i, l);
                    }
                    if (gv.Controls[i].HasControls())
                    {
                        PrepareGridViewForExport(gv.Controls[i]);
                    }
                }
            }
    tout cela est correct, mais ce que j'aimerais faire c'est ajouter un bouton permettant d'auto-génerer le excel, l'enregistrer sur le serveur pour pouvoir le mettre en piece jointe à l'email crée par mon code.

    J'ai beaucoup cherché avant de venir posté et je ne vois pas comment je pourrais enregistrer le fichier côté serveur (dans temp par exemple) au vu de la façon dont je le génere.

    En vous remerçiant pour votre aide.

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Regarde du coté de la bibliotheque de Carlos ag :

    http://www.carlosag.net/Tools/ExcelX...er/sample.aspx

+ 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. Réponses: 5
    Dernier message: 06/11/2007, 10h25
  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. [C#] Comment exporter un GridView vers Excel ?
    Par anto dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/05/2006, 16h24

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