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程序设计有所帮助。