GridView直接导Excel
/// <summary>
/// 匯出到Excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnExport_Click(object sender, EventArgs e)
{
ExportGridViewToExcel(Response, GridView_trdord, "Tracing");
}
//到出excel
public void ExportGridViewToExcel(HttpResponse response, Control gv, String excelFileName)
{
response.Clear();
response.Buffer = true;
response.Charset = "UTF-8";
response.AppendHeader("Content-Disposition", string.Format("attachment;filename={0}.xls", excelFileName));
response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
response.ContentType = "application/ms-excel";
System.Globalization.CultureInfo myCItrad = new System.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);
GridView_trdord.AllowPaging = false;//清除分页
//gvEfficiency.AllowSorting = false; //清除排序
//SetReport();
//控制GridView导出Excel后的样式
this.GridView_trdord.GridLines = GridLines.Both;
this.GridView_trdord.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
//GridView1.AllowSorting = true; //恢复排序
GridView_trdord.AllowPaging = true; //恢复排序
//SetReport(); //再次绑定
}
//以下的代码务必要加在上面一段后面,否则会出现错误:
//Control 'grdvExcel' of type 'GridView' must be placed inside a form tag with runat=server.
public override void VerifyRenderingInServerForm(Control control)
{
// 覆盖VerifyRenderingInServerForm方法,非常重要,否则系统会报错
//base.VerifyRenderingInServerForm(control);
}
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. –Martin Fowler