C#导出GridView数据到Excel文件类实例
本文实例讲述了C#导出GridView数据到Excel文件类。分享给大家供大家参考。具体如下:
这段C#代码自定义了一个封装类,用于将GridView数据导出到Excel文件
usingSystem;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.IO;
usingSystem.Web.UI.WebControls;
namespaceDotNet.Utilities
{
publicclassExportExcel
{
protectedvoidExportData(stringstrContent,stringFileName)
{
FileName=FileName+DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString()+DateTime.Now.Millisecond.ToString();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset="gb2312";
HttpContext.Current.Response.ContentType="application/ms-excel";
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.UTF8;
//this.Page.EnableViewState=false;
//添加头信息,为"文件下载/另存为"对话框指定默认文件名
HttpContext.Current.Response.AddHeader("Content-Disposition","attachment;filename="+FileName+".xls");
//把文件流发送到客户端
HttpContext.Current.Response.Write("<html><head><metahttp-equiv=Content-Typecontent=\"text/html;charset=utf-8\">");
HttpContext.Current.Response.Write(strContent);
HttpContext.Current.Response.Write("</body></html>");
//停止页面的执行
//Response.End();
}
///<summary>
///导出Excel
///</summary>
///<paramname="obj"></param>
publicvoidExportData(GridViewobj)
{
try
{
stringstyle="";
if(obj.Rows.Count>0)
{
style=@"<style>.text{mso-number-format:\@;}</script>";
}
else
{
style="nodata.";
}
HttpContext.Current.Response.ClearContent();
DateTimedt=DateTime.Now;
stringfilename=dt.Year.ToString()+dt.Month.ToString()+dt.Day.ToString()+dt.Hour.ToString()+dt.Minute.ToString()+dt.Second.ToString();
HttpContext.Current.Response.AddHeader("content-disposition","attachment;filename=ExportData"+filename+".xls");
HttpContext.Current.Response.ContentType="application/ms-excel";
HttpContext.Current.Response.Charset="GB2312";
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
StringWritersw=newStringWriter();
HtmlTextWriterhtw=newHtmlTextWriter(sw);
obj.RenderControl(htw);
HttpContext.Current.Response.Write(style);
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
catch
{
}
}
}
}
希望本文所述对大家的C#程序设计有所帮助。