在做审计局内部系统时,数据需要导出到Excel,在网上找了些代码,成功的完成了此功能
在html代码第一行中添加EnableEventValidation="false"
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="JinduDetail.aspx.cs" Inherits="JinduDetail" %>
在aspx.cs文件中添加以下代码:
// 绑定gridview
/**/
/// <summary>
/// 重载VerifyRenderingInServerForm方法
/// 确认在运行时为指定的 ASP.NET 服务器控件呈现 HtmlForm 控件。
/// </summary>
/// <param name="control">ASP.NET 服务器控件,它必须位于 HtmlForm 控件中</param>
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
导出按钮需要的代码:
protected void btnXls_Click(object sender, ImageClickEventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
// 经测试如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
Response.ContentEncoding = System.Text.Encoding.UTF7;
//设置输出文件类型为excel文件。
Response.ContentType = "application/ms-excel";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView2.RenderControl(oHtmlTextWriter);//注:GridView也可以换成其它数据绑定控件
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}