分享另外一个导出Excel的方法
上一次分享过一个导出EXCEL的类,那个类呢,只要传入一个DataSet对象进去,然后查询数据库,并最后汇到EXCEL中去。这里面,如果你是要把GridView中的数据汇出EXCEL的话,那下面这个办法可能会更好一些。
1 /// <summary> 2 /// 必须重写这个办法,虽然它没有执行任何操作 3 /// </summary> 4 /// <param name="control"></param> 5 public override void VerifyRenderingInServerForm(Control control) 6 { 7 //base.VerifyRenderingInServerForm(control); 8 } 9 //Thist is a helper method used to export gridview data to excel file. 10 //把GridView内容导出到Excel文件,包括GridView的格式页头、页脚也一起导出。 11 //注:调用该方法导出时,需在 <%@ Page %> 中加入 EnableEventValidation="false" 12 private void ExportGridViewDateToExcelFile(GridView gridView, string sExcelFileName) 13 { 14 //Response.Clear(); 15 Response.ClearContent(); 16 Response.AddHeader("content-disposition", "attachment;filename=" + sExcelFileName + ".xls"); 17 Response.ContentType = "application/ms-excel"; 18 19 StringWriter strWriter = new StringWriter(); 20 HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter); 21 22 gridView.RenderControl(htmlWriter); 23 //System.Data.DataTable dt = (System.Data.DataTable)(gridView.DataSource); 24 25 Response.Write(strWriter.ToString()); 26 Response.End(); 27 }
注意,使用本方法需要在 <%@ Page %> 中加入 EnableEventValidation="false"
调用的办法也很简单,直接把GridView的ID传进来就OK了,如下(后面的是导出的名字,为防止乱码,直接输出日期作为名称即可):
ExportGridViewDateToExcelFile(Gridview1, DateTime.Now.ToString("yyyyMMdd"));