您的位置:首页 > 编程语言 > ASP

asp.net 把数据导出为excel

2014-09-19 09:38 281 查看
本篇介绍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();
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: