本人用NPOI导出一个有6个子表,其中有两个子表的数据行超过5W,近6w,列数在10左右。
在进行write操作的时候,系统报 OutOfMemoryException 错误,查询很多资料,都说可能是NPOI创建的对象太多所致,网上也到的POI的解决方案,不知道有没有人用C#实现?
附:链接:http://blog.csdn.net/jinshuaiwang/article/details/15499685?reload
针对这个量级的导出,建议使用EPPLus(免费)。NPOI对07的支持比较弱,导出也相当慢。
如果有更大量级(100w量级-别问我为什么会有这么大的导出,客户就是这么狠!)的话,可以采用先手工写文件的方式生成csv文件,然后再转换为xlsx
这个用托管代码基本是无解的,因为不会立刻释放资源,我以前也遇到过同样的问题。但是如果用非托管的代码去做就没这个问题。主要数据量还是太大了。。。
Excel 表格数据,建议使用 OleDb 查询。