导出方法:
private void excel(string filename)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
Response.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState= false;
System.Globalization.CultureInfo myCItrad = newSystem.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
Griview1.RenderControl(oHtmlTextWriter);//此处Griview1需要注意
Response.Write(oStringWriter.ToString());
Response.End();
}
publicoverride voidVerifyRenderingInServerForm(Control control)//必须有,暂时不知其意思
{
}
应用方式:
protectedvoid linkbtn_Click(objectsender, EventArgs e)//导出excel的按钮click事件
{
//GridView51.DataSource= user.pl_nowday().Tables[0];
//GridView1.DataBind();
//excel方法中字符窜filename的格式,此方式在ie浏览器中有效,firefox呈现乱码
//stringname = Server.UrlEncode("当天签到信息") + ".xls";
//下面的格式firefox中有效,ie中失效,呈现乱码
stringname = "当天签到信息.xls";
excel(name);
}
页面源码:
<div>
<asp:GridView ID="Griview1" runat="server">
</asp:GridView>
<asp:LinkButton ID="linkbtn" runat="server">导出Excel</asp:LinkButton>
</div>