您的位置:首页 > 编程语言 > C#

C# 导出 数据 到Excel

2015-07-30 11:09 381 查看
/// <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

原子中的各位亲,如果 发现 有问题,或有更高明的方法,欢迎拍砖!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: