最近碰到一个很奇怪的问题,就是IE下载excel在数据量超过300K左右时,第一次下载会失败。我后台用的下载插件是Apose,感觉这个问题如果用NPOI的话导出应该就没什么问题,但是由于项目时间问题,只能寻求其他解决方案。有两种解决方案:
1, string URL = Request.Url.Host.ToString();
workbook.Save(reportName, FileFormatType.Excel2007Xlsx, SaveType.OpenInExcel, System.Web.HttpContext.Current.Response, Encoding.UTF8);
workbook.Save(Server.MapPath(@"~\Temp") + "\\" + reportName);
Response.Redirect("http://localhost:47568/Temp" + "/" + reportName);
Response.Write("<script>window.open();</script>");
Response.Redirect(URL);
这种方法是先把数据库中的表文件下载到服务器端,然后再下载到本地,但是这种方法会有一些问题,就是当两个人同时下载的话就会出现文件覆盖的情况。
2, System.IO.MemoryStream ms = workbook.SaveToStream(); 生成数据流
byte[] bt = ms.ToArray();