首页新闻找找看学习计划

NPOI导出大数据量的excel2007文件报 OutOfMemoryException错误

0
悬赏园豆:5 [已解决问题] 解决于 2015-03-17 09:35

本人用NPOI导出一个有6个子表,其中有两个子表的数据行超过5W,近6w,列数在10左右。

在进行write操作的时候,系统报 OutOfMemoryException 错误,查询很多资料,都说可能是NPOI创建的对象太多所致,网上也到的POI的解决方案,不知道有没有人用C#实现?

附:链接:http://blog.csdn.net/jinshuaiwang/article/details/15499685?reload

快乐是短暂的的主页 快乐是短暂的 | 初学一级 | 园豆:6
提问于:2014-11-04 18:28
< >
分享
最佳答案
0

针对这个量级的导出,建议使用EPPLus(免费)。NPOI对07的支持比较弱,导出也相当慢。

如果有更大量级(100w量级-别问我为什么会有这么大的导出,客户就是这么狠!)的话,可以采用先手工写文件的方式生成csv文件,然后再转换为xlsx

收获园豆:1
幻天芒 | 高人七级 |园豆:36522 | 2014-11-05 08:50
其他回答(3)
0

这个用托管代码基本是无解的,因为不会立刻释放资源,我以前也遇到过同样的问题。但是如果用非托管的代码去做就没这个问题。主要数据量还是太大了。。。

收获园豆:1
XiaoFaye | 园豆:3082 (老鸟四级) | 2014-11-05 06:21
1

这个问题遇到过,NPOI对大容量的excel没办法,建议楼主使用Aspose.Cell(PS:找网上破解版),肯定解决这个问题。

收获园豆:3
````` | 园豆:14268 (专家六级) | 2014-11-05 08:24
0

Excel 表格数据,建议使用 OleDb 查询。

Launcher | 园豆:45040 (高人七级) | 2014-11-05 09:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册