GridView导出Excel表
其实这个网上已经有很多代码了,我也是综合了网上的代码,现在贴出来是想让有需要的朋友能一次性搞定。
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
Response.ContentEncoding = System.Text.Encoding.UTF7;
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
另外一定要重写VerifyRenderingInServerForm()如下:
public override void VerifyRenderingInServerForm(Control control)
{}
PS:
1:filename为导出文件的文件名。
2:其实此方法不仅适用于GridView,还可以在Table、DIV下导出,前提是要将它们转换为服务器段控件(加上runat="server")。
3:就是有时我们的GridView是自定义分页显示的,但导出时又要将数据全部导出。这里我们事先写好一个不是分页绑定的方法,在导出时先调用该方法,导出结束时再调一次分页绑定的方法。这样问题就解决了,只是麻烦一点,如有朋友知道更好的方法,谢谢提出来!
 
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
Response.ContentEncoding = System.Text.Encoding.UTF7;
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
另外一定要重写VerifyRenderingInServerForm()如下:
public override void VerifyRenderingInServerForm(Control control)
{}
PS:
1:filename为导出文件的文件名。
2:其实此方法不仅适用于GridView,还可以在Table、DIV下导出,前提是要将它们转换为服务器段控件(加上runat="server")。
3:就是有时我们的GridView是自定义分页显示的,但导出时又要将数据全部导出。这里我们事先写好一个不是分页绑定的方法,在导出时先调用该方法,导出结束时再调一次分页绑定的方法。这样问题就解决了,只是麻烦一点,如有朋友知道更好的方法,谢谢提出来!
                    
                
                
            
        
浙公网安备 33010602011771号