ASP.NET使用GridView导出Excel实现方法
本文实例讲述了ASP.NET使用GridView导出Excel实现方法。分享给大家供大家参考。具体实现方法如下:
///<summary> ///将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流 ///</summary> ///<paramname="dtData">要导出的数据源</param> publicstaticvoidDataTable1Excel(System.Data.DataTabledtData) { System.Web.UI.WebControls.GridViewgvExport=null; //当前对话 System.Web.HttpContextcurContext=System.Web.HttpContext.Current; //IO用于导出并返回excel文件 System.IO.StringWriterstrWriter=null; System.Web.UI.HtmlTextWriterhtmlWriter=null; if(dtData!=null) { //设置编码和附件格式 curContext.Response.ContentType="application/vnd.ms-excel"; curContext.Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312"); curContext.Response.Charset="utf-8"; //导出excel文件 strWriter=newSystem.IO.StringWriter(); htmlWriter=newSystem.Web.UI.HtmlTextWriter(strWriter); //为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView gvExport=newSystem.Web.UI.WebControls.GridView(); gvExport.DataSource=dtData.DefaultView; gvExport.AllowPaging=false; gvExport.DataBind(); //返回客户端 gvExport.RenderControl(htmlWriter); curContext.Response.Write("<metahttp-equiv=\"Content-Type\"content=\"text/html;charset=gb2312\"/>"+strWriter.ToString()); curContext.Response.End(); } } ///<summary> ///直接输出Excel ///</summary> ///<paramname="dtData"></param> publicstaticvoidDataTable2Excel(System.Data.DataTabledtData) { System.Web.UI.WebControls.DataGriddgExport=null; //当前对话 System.Web.HttpContextcurContext=System.Web.HttpContext.Current; //IO用于导出并返回excel文件 System.IO.StringWriterstrWriter=null; System.Web.UI.HtmlTextWriterhtmlWriter=null; if(dtData!=null) { //设置编码和附件格式 curContext.Response.ContentType="application/vnd.ms-excel"; curContext.Response.ContentEncoding=System.Text.Encoding.UTF8; curContext.Response.Charset=""; //导出excel文件 strWriter=newSystem.IO.StringWriter(); htmlWriter=newSystem.Web.UI.HtmlTextWriter(strWriter); //为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid dgExport=newSystem.Web.UI.WebControls.DataGrid(); dgExport.DataSource=dtData.DefaultView; dgExport.AllowPaging=false; dgExport.DataBind(); //返回客户端 dgExport.RenderControl(htmlWriter); curContext.Response.Write(strWriter.ToString()); curContext.Response.End(); } }
希望本文所述对大家的asp.net程序设计有所帮助。