将DataSet生成EXCEL的代码如下:
using system.IO;
public void ExportResult(DataSet ds)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
DataGrid dg = new DataGrid();
dg.DataSource = ds.Tables[0];
dg.DataBind();
dg.RenderControl(htmlWrite);
HttpContext.Current.Response.Write(stringWrite.ToString());
HttpContext.Current.Response.End();
}
在本机上测试一切OK,能够将生成的excel表格下载。到其他机器上试,竟然没有一台机器可以下载,总是转到另一页面直接打开,有时还会出现错误提示。
一开始以为是IE的设置问题,后来就怀疑是OFFICE的版本问题,我的是2003,而另外的都是2000的。
具体原因,尚不得知,但终于解决了这个问题。就是添上一句:
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=result.xls");