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是自定义分页显示的,但导出时又要将数据全部导出。这里我们事先写好一个不是分页绑定的方法,在导出时先调用该方法,导出结束时再调一次分页绑定的方法。这样问题就解决了,只是麻烦一点,如有朋友知道更好的方法,谢谢提出来!


posted @ 2008-05-22 15:48  草市江田  阅读(355)  评论(0)    收藏  举报