原本在CS项目中用的好好的在BS项目中既然提示我导出出现无法访问已关闭的流的解决方法 比较郁闷经过研究 终于解决了先将方法发出来 让遇到此问题的筒子们以作参考
//新建类 重写Npoi流方法public class NpoiMemoryStream : MemoryStream { public NpoiMemoryStream() { AllowClose = true; } public bool AllowClose { get; set; } public override void Close() { if (AllowClose) base.Close(); }}
导出Excel方法
//导出Excel文件的方法var ms = new NpoiMemoryStream();ms.AllowClose = false;workbook.Write(ms);ms.Flush();ms.Seek(0, SeekOrigin.Begin);ms.AllowClose = true;HttpContext curContext = HttpContext.Current;curContext.Response.ContentType = "application/vnd.ms-excel";curContext.Response.ContentEncoding = Encoding.UTF8;curContext.Response.Charset = "";curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));long fileSize = ms.Length;curContext.Response.AddHeader("Content-Length", fileSize.ToString());curContext.Response.BinaryWrite(ms.GetBuffer());curContext.Response.End();
如果您觉得此方法解决了您的疑惑请为点个推荐,让此贴搜索命中率高一些让遇到此问题的筒子们能尽快找到!Thanks