这是一个比较通用的方法,如果时间很紧的话可以使用,但不是很推荐,因为输出的时候会把后面的链接按钮显示出来
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
//这行代码解决excel表名乱码
Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode("蜀湘科技入库表" + DateTime.Now.ToString("yyyy-MM-dd") + "查询.xls", System.Text.Encoding.UTF8) + "\"");
//这行代码解决内容页乱码
Response.Write("<metahttp-equiv=Content-Type content=text/html;charset=UTF-8>");
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
sw.Write(sw.Encoding);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
个别页面可能会报错,需要在page里面加入属性 : EnableEventValidation="false"