网页要生成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();

解决方案 »

  1.   

    private void StringW(DataGrid dg)
    {
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    dg.RenderControl(htw);
    Response.Write(sw.ToString());
    htw.Close();
    sw.Close();
    Response.End();
    }
      

  2.   

    我不是用上面的方法的,而是调用EXCEl的控件的,因为上面的导出来的有HTML代码的,到时候不能导入的。
      

  3.   

    不保存也能下載?
    你可不可以這樣,每次生成一個新的下載之前刪掉上一次的excel文件。
      

  4.   

    我的项目中是在客户端生成EXCEL效果不错