c#NPOI导出2007版本excel

时间:2021-12-04 06:05:33

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();
}

}
}

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