码迷,mamicode.com
首页 > Web开发 > 详细

asp.net 把数据导出为excel

时间:2014-09-19 09:57:35      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   ar   for   

本篇介绍c#中如何使用DataTable导出Excel,至于其他的导出方法,这里不作介绍!

 

1.首页从数据库读取数据,得到DataTable:

DataTable dt = HelperExecuteSql.Query("select ID,name,author,newsContent,inDate from newsInfo").Tables[0];

2.使用StringWriter类:将信息写入字符串(其命名空间为:System.IO)

private StringWriter GetStringWriter(DataTable dt)
    {
        StringWriter sw = new StringWriter();
        //读列名,也可以自定义列名(即导出excel的表头)
        //foreach (DataColumn dc in dt.Columns)
        //{ sw.Write(dc.ColumnName + "\t");}
//表头,自定义 sw.Write("序号\t"); sw.Write("新闻名\t"); sw.Write("作者\t"); sw.Write("新闻内容\t"); sw.Write("上传时间\t");//读列值,重新的一行 sw.Write(sw.NewLine); if (dt != null) { foreach (DataRow dr in dt.Rows) { for (int i = 0; i < dt.Columns.Count; i++) { sw.Write(dr[i].ToString() + "\t"); } sw.Write(sw.NewLine); } } sw.Close(); return sw; }

 3. ExcelImport(dt, "新闻列表");

protected void ExcelImport(DataTable dt, string ExportFileName)
    {
        StringWriter sw = GetStringWriter(dt);
        //当前编码  
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        //把输出的文件名进行编码  
        string fileName = HttpUtility.UrlEncode(ExportFileName, System.Text.Encoding.UTF8);
        //文件名  
        string str = "attachment;filename=" + fileName + ".xls";
        //把文件头输出,此文件头激活文件下载框  
        HttpContext.Current.Response.AppendHeader("Content-Disposition", str);//http报头文件  
        HttpContext.Current.Response.ContentType = "application/ms-excel";
        this.Page.EnableViewState = false;
        Response.Write(sw);
        Response.End();
    }

  

 

asp.net 把数据导出为excel

标签:style   blog   http   color   io   os   使用   ar   for   

原文地址:http://www.cnblogs.com/qk2014/p/3980717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!