NPOI 版本 2.2+ MemoryStream.ToArray() 0 字节
NPOI version 2.2+ MemoryStream.ToArray() 0 bytes
使用 NPOI 版本 2.1.3.1,此行完美运行,返回一个包含数据的字节数组:
工作簿是 XSSFWorkbook
using (var memoryStream = new MemoryStream())
{
workbook.Write(memoryStream);
return memoryStream.ToArray();
}
当升级到 2.2(和 2.3)时,这不再是 returns 任何数据,字节数组有 0 个字节。
没有抛出异常,它只是静静地写入数据失败。
更新后的版本有新的写法吗?
我没有发现您的代码有任何问题。事实上,我正在使用类似的方法来获得结果。尝试使用 MemoryStream class 类型转换返回值或将 memorystream 变量定义为 MemoryStream.
类型
下面是我的做法
public MemoryStream GetExcelStream()
{
MemoryStream ms = null;
using (ms = new MemoryStream())
{
workbook.Write(ms);
}
return ms;
}
MemoryStream excelMS = GetExcelStream();
..........................
Response.BinaryWrite(excelMS.ToArray());
Response.End();
如果上述方法不起作用,请参阅此 link
使用 NPOI 版本 2.1.3.1,此行完美运行,返回一个包含数据的字节数组: 工作簿是 XSSFWorkbook
using (var memoryStream = new MemoryStream())
{
workbook.Write(memoryStream);
return memoryStream.ToArray();
}
当升级到 2.2(和 2.3)时,这不再是 returns 任何数据,字节数组有 0 个字节。 没有抛出异常,它只是静静地写入数据失败。
更新后的版本有新的写法吗?
我没有发现您的代码有任何问题。事实上,我正在使用类似的方法来获得结果。尝试使用 MemoryStream class 类型转换返回值或将 memorystream 变量定义为 MemoryStream.
类型下面是我的做法
public MemoryStream GetExcelStream()
{
MemoryStream ms = null;
using (ms = new MemoryStream())
{
workbook.Write(ms);
}
return ms;
}
MemoryStream excelMS = GetExcelStream();
..........................
Response.BinaryWrite(excelMS.ToArray());
Response.End();
如果上述方法不起作用,请参阅此 link