把DATASET数据写入客户端EXCEL文件(利用DataTable)

 public void DatasetToExcel(DataSet ds, string fileName)
{
//DataSet ds = (DataSet)this.Cache["DataSet"];
DataTable dt = ds.Tables[0];

System.IO.StringWriter sw = new System.IO.StringWriter();
sw.WriteLine("ID\t类型ID\t姓名");
foreach (DataRow dr in dt.Rows)
{
sw.WriteLine(dr["id"] + "\t" + dr["typeId"] + "\t" + dr["typeName"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}

要注意的是fileName 必须进行转换,不然下载的文件名是乱码。

posted @ 2011-10-13 08:59  becket  阅读(377)  评论(0编辑  收藏  举报