C# 导出 数据 到Excel

/// <summary>
        /// 实现将数据导出至Excel,
        /// 在上面的代码中,我们首先将gridview绑定到指定的数据源中,然后在button1的按钮(用来做导出到EXCEL的)的事件中,写入相关的代码。
        /// 这里使用Response.AddHeader("content-disposition","attachment;filename= exporttoexcel.xls");中的filename来指定将要导出的excel的文件名,
        /// 这里是exporttoexcel.xls。要注意的是,由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为 false,
        /// 然后通过页面流的方式导出当前页的gridview到excel中,最后再重新设置其allowpaging属性。另外要注意的是,要写一个空的VerifyRenderingInServerForm方法(必须写),
        /// 以确认在运行时为指定的ASP.NET 服务器控件呈现HtmlForm 控件
        /// ****************************************************************
        /// 以下代码部份来自互联网
        /// 导出数据到FileName.xls*****************
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void button1_Click(object sender, EventArgs e)
        {
            Response.Clear();
            Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
            Response.Charset = "gb2312";
            Response.ContentType = "application/vnd.xls";
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

            this.gridview1.AllowPaging = false;
            this.bind();
            this.gridview1.RenderControl(htmlWrite);

            Response.Write(stringWrite.ToString());
            Response.End();
            this.gridview1.AllowPaging = true;
            this.bind();
        }

这些代码写完之后 ,导出 数据时,报错了: 只能在执行 Render() 的过程中调用 RegisterForEventValidation

于是百度,在对应的页面上,加上EnableEventValidation="false",问题 解决。

参考相关链接:http://www.ezloo.com/2008/10/render_registerforeventvalidation.html

原子中的各位亲,如果 发现 有问题,或有更高明的方法,欢迎拍砖!

posted @ 2015-07-30 11:09  段晨  阅读(710)  评论(0编辑  收藏  举报