gridview 导出到excel

放到page中去处理 不管是服务器控件还是用户控件 都通用
C#代码
C# code
StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); HtmlTextWriter htw = new HtmlTextWriter(sw); Page page = new Page(); HtmlForm form = new HtmlForm(); GridView1.EnableViewState = false; // Deshabilitar la validación de eventos, sólo asp.net 2 page.EnableEventValidation = false; // Realiza las inicializaciones de la instancia de la clase Page que requieran los diseñadores RAD. page.DesignerInitialize(); page.Controls.Add(form); form.Controls.Add(GridView1); page.RenderControl(htw); Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition", "attachment;filename=data.xls"); Response.Charset = "UTF-8"; Response.ContentEncoding = Encoding.Default; Response.Write(sb.ToString()); Response.End();

VB代码:
VB.NET code
Dim sw As New StringWriter(sb) Dim htw As New HtmlTextWriter(sw) Dim page As New Page() Dim form As New HtmlForm() GridView1.EnableViewState = False ' Deshabilitar la validación de eventos, sólo asp.net 2 page.EnableEventValidation = False ' Realiza las inicializaciones de la instancia de la clase Page que requieran los diseñadores RAD. page.DesignerInitialize() page.Controls.Add(form) form.Controls.Add(GridView1) page.RenderControl(htw) Response.Clear() Response.Buffer = True Response.ContentType = "application/vnd.ms-excel" Response.AddHeader("Content-Disposition", "attachment;filename=data.xls") Response.Charset = "UTF-8" Response.ContentEncoding = Encoding.[Default] Response.Write(sb.ToString()) Response.[End]()

posted @ 2011-01-26 17:08  hinsxun  阅读(176)  评论(0编辑  收藏  举报