public void ExtendFile( string setfname, string content)//文件名(‘-’符号好像会出现问题),内容
{
HttpResponse response = HttpContext.Current.Response;
response.ContentType = "application/vnd.ms-excel";
if (HttpContext.Current.Request.UserAgent.ToLower().IndexOf("firefox") > -1)
{
response.AddHeader("content-disposition", "inline;filename="
+ setfname);
}
else
{
response.AddHeader("content-disposition", "inline;filename="
+ HttpUtility.UrlEncode(setfname, Encoding.UTF8));
}
response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
response.Write(content);
response.End();
}
下面是调用:
public void OutPutExcel(DataSet ds)
{
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
StringWriter sw = new StringWriter();
string dname = "aaa";
sw.WriteLine("\t" + dname);
sw.WriteLine("卡号\t密码");
foreach (DataRow item in ds.Tables[0].Rows)
{
sw.WriteLine("=\"" + item["CardNum"] + "\"\t=\"" + item["PassTest"] + "\"");//字段全是数字有时候excel会自动转换成数字格式,所以加上"=\""+value+"\""
}
sw.Close();
ExtendFile( dname + ".xls", sw.ToString());
}
else
{
Response.Write("<script>alert('导出数据为空')</script>");
Response.End();
}
}