1.不能通过服务器生成一个A.XLS文件,然后浏览器去访问这个路径然后去下载这个文件。这种方法不能用。
2.我想达到的效果是服务器不生成A.XLS文件。直接用流的形式传给客户端然后下载。这个该怎么实现?
3.这个流可以是 byte,也可以是 MemoryStream流。

解决方案 »

  1.   

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                book.Write(ms);//在写入MemoryStream
                ms.Seek(0, SeekOrigin.Begin);
                byte[] bytelength = ms.ToArray();
                ms.Write(bytelength, 0, bytelength.Length);
                var filePath = Server.MapPath("~/excel/" + tablename + ".xls");
                MainModels.WriteBuffToFile(bytelength, filePath);//生成EXCEL文件
                return File(filePath, "application/vnd.ms-excel",tablename + ".xls");这是我目前的代码 是先生存EXCEL文件然后再去服务端把EXCEL文件下载下来。我不喜欢这种方式,我想通过流直接输出到浏览器,然后下载EXCEL。
      

  2.   

    如果是 html5,可使用 WebSocket。
      

  3.   

    晕,你这么着就行了啊
    byte[] bytelength = ms.ToArray();
    return File(bytelength, "application/vnd.ms-excel",tablename + ".xls");