2008-12-17 7 views
0

Quelqu'un a-t-il un exemple (code ou lien) qui me permettra d'exporter un champ de modèle gridview pour exceller? Voici un exemple de ce que je veux dire. Supposons que je la Déclaration GridView suivante:Comment exporter un ASP: les champs TemplateField de GridView pour exceller dans C#?

<asp:GridView Id="gvResults" runat="server"> 
    <Columns> 
     <asp:TemplateField HeaderText="Contact Info"> 
      <ItemTemplate> 
       <b>Name:</b><%# Eval("Name") %><br/> 
       <b>Address:</b><%# Eval("Address") %><br/> 
       <b>Phone:</b><%# Eval("Phone") %><br/> 
       <b>E-mail:</b><%# Eval("Email") %> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

Quand j'exporter vers Excel, je veux exporter les champs dans le champ de modèle à colonnes dans le fichier Excel, il ressemblera à ceci:

nom Adresse téléphone E-mail

==== ======= ==== =====

John 123e 40330 [email protected]

Mark 456 St 22039 [email protected]

Répondre

2

Je recommande fortement à toute personne utilisant hors des contrôles boîte asp GridView à envisager de dépenser de l'argent sur un paquet tiers (DevExpress est mon préféré)

Cela étant dit, je l'ai utilisé this avant quand j'avais aucun autre choix

+0

Cela ne me semble pas aider à exporter une certaine partie de la ItemTemplate comme une colonne et une autre partie de la valeur. – Xaisoft

2
For i = 0 To gvExport.Rows.Count - 1 
     For j = rowsLeftTrimed To cellCount - 1 

      If gvExport.Rows(i).Cells(j).Text = String.Empty Then 
       Dim ctl As DataBoundLiteralControl = _ 
        TryCast(gvExport.Rows(i).Cells(j).Controls(0), DataBoundLiteralControl) 

       If ctl IsNot Nothing Then 
        sw.Write(Chr(34) & ctl.Text.Trim & Chr(34) & ",") 
       End If 

      'Else 
      ' sw.Write(Chr(34) & gvExport.Rows(i).Cells(j).Text & Chr(34)) 
      End If 
     Next 
     sw.WriteLine() 
    Next 
Questions connexes