场景:导出数据在10~20w,单行字段在50个左右,需要导出为xlsx格式。
测试:1、使用NPOI2.0时,导出xls(不超过65536行)很快,导出为xlsx时,会因为数量量的增加,速度明显缓慢很多,我导出时,会花接近20分钟,同时,最后会有一个错误(xml生成错误)。
2、采用Aspose.Cells,这个导出速度什么的都非常快,完全符合要求。(为什么不采用:公司要求,不能使用付费软件(购买除外))。
问题:希望各位园友,提供免费或开源的导出大量数据到瞎xlsx的解决方案的思路,感谢大家~
看看这个如何 没测这速度怎样
FYI
http://epplus.codeplex.com/SourceControl/latest
好,我先测试下,待会贴测试结果。感谢~
测试项目:Epplus
2013/6/5 10:55:03 Start Run...
2013/6/5 10:55:05 10000...
2013/6/5 10:55:08 20000...
2013/6/5 10:55:10 30000...
2013/6/5 10:55:13 40000...
2013/6/5 10:55:16 50000...
2013/6/5 10:55:19 60000...
2013/6/5 10:55:22 70000...
2013/6/5 10:56:03 End...
总数据:73258行,每行包含列42个。
耗时:1分钟;生成文件15.3M。
内存占用:500M。
这个速度是满足要求了,就是内存占用有点夸张~
@幻天芒:
500M 还好了
@Yu: 考虑到并发的话,害怕内存不足。同样环境,Aspose只需要18s,内存150m。呵呵~。感谢你~
@幻天芒:
嗯 , 桌面形式 我还没试, 反正开源 看看有没有的优化,
不过我直接用WEB GRIDVIEW形式导出6W,速度还行15s左右
@Yu: 导出65536以下,用NPOI就可以了,很快速。我这个也是Web的哦~Aspose.Cells,不管是效率还是内存占用,都是最好的,就是不敢用,哎。Epplus的速度还行,就是内存占用有点吓人,不知道是否有办法优化下。
@Yu: 这种适合小数据量导出,数据量大了,可行性不大吧~我这个直接装DataTable是完全不行的。
@幻天芒: 我这也是 10w左右的导出 没什么问题
@Yu: 哦,那还不错。我这边是用后台线程导出文件,然后前台直接下载的做法。数据量当前的还不大,只有10来w,不过是增量式的。现在的导出数据可能在20M,没有采用网页导出的方式,呵呵~谢谢你。
我的天呢!
何出此言?