Ti riporto comunque un esempio ---in VB.Net--- fatto tempo fa (si appoggia ad una GridView che si chiama dgTurniDipendente) :
codice:
Protected Sub btEsportaExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btEsportaExcel.Click
dgTurniDipendente.AllowPaging = "False"
dgTurniDipendente.DataBind()
Dim tw As New System.IO.StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(tw)
Dim frm As HtmlForm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=export.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(dgTurniDipendente)
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
End Sub