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 :

[C#] Comment exporter un GridView vers Excel ?


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut [C#] Comment exporter un GridView vers Excel ?
    Salut,
    je vous propose un tout nouveau jeu : chercher l'erreur

    tout d abord mon code de mo fichier aspx.cs
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
      protected void Imprime_Click(object sender, EventArgs e)
      {
        verifColonne(GridView1);
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.ms-excel";
        Response.Charset = "";
        StringWriter monstringwriter = new StringWriter();
        HtmlTextWriter monhtmltextwriter = new HtmlTextWriter(monstringwriter);
        GridView1.RenderControl(monhtmltextwriter);
        Response.Write(monstringwriter.ToString());
        Response.End();
        GridView1.Dispose();
      }
     
       protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
      {
        Response.Redirect("./FicheAnomalieLecture.aspx?idfa=" + this.GridView1.SelectedRow.Cells[1].Text);
      }
     
      private void verifColonne(Control monDataGrid)
      {
        int nbControls = monDataGrid.Controls.Count - 1;
        while (nbControls >= 0)
        {
          verifColonne(monDataGrid.Controls[nbControls]);
          nbControls = nbControls - 1;
        }
        if (!((monDataGrid is TableCell)))
        {
          if (!((monDataGrid.GetType().GetProperty("SelectedItem") == null)))
          {
            LiteralControl controleLitteral1 = new LiteralControl();
            monDataGrid.Parent.Controls.Add(controleLitteral1);
            try
            {
              controleLitteral1.Text = ((string)(monDataGrid.GetType().GetProperty("SelectedItem").GetValue(monDataGrid, null)));
            }
            catch (Exception monException)
            {
              Response.Write(monException.Message);
            }
            monDataGrid.Parent.Controls.Remove(monDataGrid);
          }
          else
          {
            if (!((monDataGrid.GetType().GetProperty("Text") == null)))
            {
              LiteralControl controleLitteral2 = new LiteralControl();
              monDataGrid.Parent.Controls.Add(controleLitteral2);
              controleLitteral2.Text = ((string)(monDataGrid.GetType().GetProperty("Text").GetValue(monDataGrid, null)));
              monDataGrid.Parent.Controls.Remove(monDataGrid);
            }
          }
        }
      }
    }
    puis celui de mon fichier aspx
    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
    45
     
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListeFA.aspx.cs" Inherits="GestionFA_ListeFA" MasterPageFile="~/MasterPageNavigation.master" Title="Liste des fiches d'anomalie " %>
     
    <%@ Register Src="../ControlesAccesPages/ControleAccesRoleVisionneur.ascx" TagName="ControleAccesRoleVisionneur"
        TagPrefix="uc1" %>
     
    <asp:Content ID="content4" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
        <uc1:ControleAccesRoleVisionneur ID="ControleAccesRoleVisionneur1" runat="server" />
     
        <asp:Label ID="Label2" runat="server" Text="Liste des fiches d'anomalie :" Font-Underline="true" CssClass="titrePage"></asp:Label>
        <br />
        <asp:ImageButton ID="imprime" runat="server" OnClick="Imprime_Click" ImageUrl="~/images/imprim2.jpeg"/>
        <br />
        <div class="interfUtilisateurDecalageDroiteImportant">
        <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataSourceID="listeFA" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Width="600px" AllowPaging="True" AllowSorting="True">
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <EditRowStyle BackColor="#999999" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333"/>
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:CommandField ButtonType="Image" SelectImageUrl="~/images/collapse.png" SelectText=""
                    ShowSelectButton="True" />
                <asp:BoundField DataField="__idDocument" HeaderText="Ref" SortExpression="Document.idDocument" />
                <asp:BoundField DataField="__nomDoc" HeaderText="Titre" SortExpression="nomDoc" />
                <asp:BoundField DataField="__statut" HeaderText="Statut" SortExpression="idStatut" />
                <asp:BoundField DataField="__gravite" HeaderText="Gravité" SortExpression="idGravite" />
                <asp:BoundField DataField="__ProduitConcerne" HeaderText="Produit" SortExpression="idProduit" />
                <asp:BoundField DataField="__moduleImpacte" HeaderText="Modules"  SortExpression="impactesur.idmodule"/>
                <asp:BoundField DataField="__dateCreation" HeaderText="Date Création" SortExpression="dateCreation" />
                <asp:BoundField DataField="__dateModification" HeaderText="Date Modification" SortExpression="dateDerniereModif" />
                <asp:BoundField DataField="__auteur" HeaderText="Auteur"  SortExpression="redige.idpersonne"/>
            </Columns>
            <EmptyDataTemplate>
                Aucune fiche d'anomalie actuellement.
            </EmptyDataTemplate>
        </asp:GridView>
        <br />
     
        <asp:ObjectDataSource ID="listeFA" SelectMethod="lesFichesAnomalies" runat="server" TypeName="Metiers.SystemeGestionDoc" OldValuesParameterFormatString="original_{0}" SortParameterName="SortExpression">
        </asp:ObjectDataSource>
     
    </asp:Content>
    le problème vient lors du clic sur mon bouton pour imprimer (qui en fait exporte vers Excel)
    [FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif]Sur cette ligne
    GridView1.RenderControl(monhtmltextwriter);

    erreur :
    Le contrôle 'ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_GridView1' de type 'GridView' doit être placé dans une balise form avec runat=server.


    [/FONT]

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Premierement ajoute la propriété EnabelEventValidation dans ta balise page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ Page EnableEventValidation="false" %>
    ensuite ajoute ceci dans ton code-behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public override void VerifyRenderingInServerForm(Control control) {
            //  Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.
        }
    Je te conseille vivement de mettre ton gridview sans formattage pour l'exportation vers Excel. Je te jure que les couleurs sont mal rendu.

    Quel est le prix de ton jeu au juste?
    Hana no iro wa
    Utsuri ni keri na

  3. #3
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Tu as gagné ... Un grand merci

    J'étais bloqué la dessus depuis longtemps c'est cool d'avoir pris le temps de m'aider

    et
    VIVE LE QUEBEC

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par anto
    Tu as gagné ... Un grand merci

    J'étais bloqué la dessus depuis longtemps c'est cool d'avoir pris le temps de m'aider

    et
    VIVE LE QUEBEC
    mais de rien!
    Hana no iro wa
    Utsuri ni keri na

  5. #5
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    J espère que t'es pas trop déçu par le prix

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

Discussions similaires

  1. exporter une gridview vers excel
    Par nlmmathu82 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/12/2010, 17h36
  2. Réponses: 1
    Dernier message: 02/12/2010, 10h46
  3. [PPT-VBA] Comment exporter un slide vers Excel
    Par bonilla dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 20/11/2008, 20h30
  4. Comment exporter un TStringGrid vers Excel par Linkin
    Par MelkInarian dans le forum Delphi
    Réponses: 2
    Dernier message: 09/02/2007, 09h37
  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