c#NPOI导出2007版本excel

 

2003和2007版本区别:

HSSFWorkbook(2003)

IWorkbook(2007版本)

写完之后会有个问题,导出会报错【流已关闭】。

NPOI生产.xlsx文件件时,在使用book.Write(ms);后,会关闭流,这样导致再次使用Respons输出流的时候就出错了。

我看到一些网友提供的解决办法是:

 

public class NPOIMemoryStream:MemoryStream
    {
        /// <summary>
        /// 获取流是否关闭
        /// </summary>
        public bool IsColse
        {
            get;
            private set;
        }

        public NPOIMemoryStream(bool colse=false)
        {
            IsColse = colse;
        }

        public override void Close()
        {
            if (IsColse)
            {
                base.Close();
            }
            
        }
    }

使用自定义流代替内存流,这样就可以保证流不会被自定关闭了

 

posted @ 2017-11-08 18:14  沉迷编程的程序员  阅读(1155)  评论(0编辑  收藏  举报