首页 新闻 会员 周边

使用NPOI 导出20w+数据到excel 的问题???

0
悬赏园豆:30 [已解决问题] 解决于 2017-03-27 14:36

最近项目有做数据导出,数据量达到了几十万,然后发现当数据量大于20w以上时,就会出现:
引发类型为“System.OutOfMemoryException”的异常。内存溢出的问题!

因为导出到Excel有最多65535行数据的限制;我这边已经采用了分成多个sheet

异常是出现在写入的时候

 

 

执行到这里就内存溢出了,有谁遇到过类似的问题吗???

千里之行、始于足下的主页 千里之行、始于足下 | 初学一级 | 园豆:117
提问于:2017-02-08 09:59
< >
分享
最佳答案
0

内存流溢出了就是用文件流呗,总不至于硬盘也会满吧

收获园豆:10
刘宏玺 | 专家六级 |园豆:14020 | 2017-02-08 10:28

您是说这种吗???   直接写入Excel文件的形式,倒是可以的

千里之行、始于足下 | 园豆:117 (初学一级) | 2017-02-08 15:45
其他回答(4)
0
收获园豆:5
写代码的小2B | 园豆:4371 (老鸟四级) | 2017-02-08 11:17

我是导出  ^^

0

没有必要用MemoryStream,换

收获园豆:5
悦光阴 | 园豆:2251 (老鸟四级) | 2017-02-08 12:41
0

单纯将MemoryStream改为FileStream,后面的workbook.Write(fs)不变

收获园豆:5
诶碧司 | 园豆:1912 (小虾三级) | 2017-02-08 17:36

换成FileStream之后,数据量小是可以的,但是如果数据量还是很大,比如在137万的时候还是会出现内存溢出。

支持(1) 反对(0) —阿辉 | 园豆:201 (菜鸟二级) | 2018-11-12 15:47
0

65535行 这个是 xls的限制 (excel 07)

用 xlsx 这个限制会多很多(excel 2010)

收获园豆:5
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2017-03-07 14:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册