/ / Como exportar um asp: Campos TemplateField do GridView para o Excel em c #? - c #, asp.net, gridview

Como exportar um asp: campos TemplateField do GridView para excel em c #? - c #, asp.net, gridview

Alguém tem um exemplo (código ou link) que me permita exportar um campo de modelo gridview para o excel? Aqui está um exemplo do que quero dizer. Suponha que eu tenha a seguinte declaração GridView:

<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>

Quando eu exportar para o excel, eu quero exportar os campos no campo de modelo para colunas no arquivo excel, assim será semelhante a isto:

Nome Endereço Telefone E-mail

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

John 123 Rd 40330 J@j.com

Mark 456 St 22039 M@M.com

Respostas:

2 para resposta № 1

Eu recomendaria altamente a qualquer um que usasse controles de gridview fora da caixa para considerar gastar algum dinheiro em um pacote de terceiros (DevExpress é meu favorito)

Dito isto, eu usei esta antes, quando eu não tinha outra escolha


2 para resposta № 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