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 № 1Eu 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