靖江建设行业协会网站,北京业之峰装饰有限公司,上海市招投标公共信息服务平台,云浮市住房和城乡建设局网站NPOI生产.xlsx文件件时#xff0c;在使用book.Write(ms);后#xff0c;会关闭流#xff0c;这样导致再次使用Respons输出流的时候就出错了。 造成关闭流的主要原因有时其实是跨域#xff0c;同域是没有问题的。 //新建类 重写Npoi流方法
public class NpoiMemoryStream : M…NPOI生产.xlsx文件件时在使用book.Write(ms);后会关闭流这样导致再次使用Respons输出流的时候就出错了。 造成关闭流的主要原因有时其实是跨域同域是没有问题的。 //新建类 重写Npoi流方法
public class NpoiMemoryStream : MemoryStream{public NpoiMemoryStream(){AllowClose true;}public bool AllowClose { get; set; }public override void Close(){if (AllowClose)base.Close();}
}
//导出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(); 原文https://blog.csdn.net/eit520/article/details/53231642 转载于:https://www.cnblogs.com/shy1766IT/p/11074548.html