问题描述
数据量在十万级时多线程导出Excel,怎么做呢?(1),在导出Excel的时候遇到数据量较大的时候,出现假死,(2),用一种思路就是多线程优化导出。
解决方案
解决方案二:
引用楼主u012764390的回复:
(2),用一种思路就是多线程优化导出。
不懂你这是什么思路。有根据么?
解决方案三:
多线程既可能缩短时间,也可能多花时间。没有深入一点的分析,就不能知道该做什么。建议你还是回到系统出发点去重新研究设计。
解决方案四:
(2),用一种思路就是多线程优化导出。这是什么意思?多开几个线程可以优化导出的速度么?难道还能几个线程一起导出一份文件?
解决方案五:
多线程优化导出如果是解决界面卡死问题,那完全正确。但如果你想加快导出速度,那么这就是完全错误的想法。解决界面卡死说是多线程,其实也就是在主线程外另起一个导出线程,仅此一个而已
解决方案六:
使用流导出,再做个进度条。
解决方案七:
额,几个线程写一个文件可以是可以普通文件好操作,excel么因为规定问题,如果启用vsto,明显不划算,所以建议使用officexml直接写,开一个内存文件映射写,当然数据顺序无法保证,如果你是加锁写入,实际上跟一个线程没啥区别,当然vsto也有好处,你可以先算range,线程只对range区操作这样就能保证数据顺序不乱了,比如先给线程一分1w个数据,他只负责写range(1-10000)的区域,其他线程负责其他区域。不过不建议,因为意外太多不好控制,而且10w级的excel,本身打开就慢,不小心还挂了,所以用处不大
解决方案八:
10w级,不多吧。耗费时间不会太大。如果只是为了防假死,你导出操作新启动一个线程来导出。如果要提高效率,可以启动多个线程导出多个临时Excel,之后再合并Excel
解决方案九:
十万级别数量很小,直接数组导出就行,不要操作单元格导出
解决方案十:
如果内容比较简单,而且格式没什么复杂的要求,一个方式:将结果用字符串来保存,两列之间用TAB区分,两行之间用换行区分。全部生成完后,打开EXCEL,将这个字符串贴进去。之前有试过,速度会快很多。
解决方案十一:
不是早就放假了么,怎么还有作业题?
解决方案十二:
引用9楼zbdzjx的回复:
如果内容比较简单,而且格式没什么复杂的要求,一个方式:将结果用字符串来保存,两列之间用TAB区分,两行之间用换行区分。全部生成完后,打开EXCEL,将这个字符串贴进去。之前有试过,速度会快很多。
思路挺有意思的,下次有机会试试
解决方案十三:
起一个后台线程执行导出。