网页要生成EXCEL报表供用户下载,我调用了EXCEL,生成后保存到服务器端的某个目录,就可以下载,但是我不想保存而直接输出到客户端下载,因为每次都要保存,服务器段就生成太多的文件了。
我目前的代码是:
//调用下面的类
Excel.Application xlApp;
Excel._Workbook xlBook;
Excel._Worksheet xlSheet;
Excel._QueryTable xlQryTable;
Excel.Range rans;
Excel.Range ran;。。生成文件后//输出到客户端的代码
xlBook.SaveCopyAs(Server.MapPath(".") + "\\aaa.xls");
string path = Server.MapPath("aaa.xls");
System.IO.FileInfo file = new System.IO.;
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";// 把文件流发送到客户端
Response.WriteFile(file.FullName);
// 停止页面的执行
Response.End();
我目前的代码是:
//调用下面的类
Excel.Application xlApp;
Excel._Workbook xlBook;
Excel._Worksheet xlSheet;
Excel._QueryTable xlQryTable;
Excel.Range rans;
Excel.Range ran;。。生成文件后//输出到客户端的代码
xlBook.SaveCopyAs(Server.MapPath(".") + "\\aaa.xls");
string path = Server.MapPath("aaa.xls");
System.IO.FileInfo file = new System.IO.;
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", file.Length.ToString());// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";// 把文件流发送到客户端
Response.WriteFile(file.FullName);
// 停止页面的执行
Response.End();
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
dg.RenderControl(htw);
Response.Write(sw.ToString());
htw.Close();
sw.Close();
Response.End();
}
你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。