数据量在十万级时多线程导出Excel,怎么做呢?

问题描述

数据量在十万级时多线程导出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,将这个字符串贴进去。之前有试过,速度会快很多。

思路挺有意思的,下次有机会试试
解决方案十三:
起一个后台线程执行导出。

时间: 2024-09-27 23:21:15

数据量在十万级时多线程导出Excel,怎么做呢?的相关文章

数据量到达一定程度时,无法显示

问题描述 情况是这样的,弄了一个控件列表,支持无限层显示.一般情况下显示是没有问题的(数据3000条左右).当数据到达一定程度(譬如3500条),而且层次够深的情况下(譬如8层).打开使用这个控件的页面就会直接显示IE无法显示此页面了.根据trace的信息控件应该是有生成的,但是不知道为什么IE会挂掉了.望大家指点一下,说说解决的思路.谢谢注:情况类似于使用upload控件上传超过了web.config所设定的最大请求数时,IE也是直接当掉. 解决方案 解决方案二:我的迅雷的已下载部分已经打不开

盘点中国2013行业数据量

说人类步入了信息时代,有个事情是非常重要的,就是物理世界的信息化,包括信息基础设施建设和数字化,紧接着就是如何将数字化的东西(数据)进行储存.传输.交换以及使用,这一脉络伴随着移动互联网,云计算.大数据以及各种各样智能终端的出现,显得也越来越清晰.很多人都已认可,我们可能来到一个工业革命之后,一个比我们想象地更加重要的变革时代,我们把它命名为产业互联网的时代.毕竟这一切都是互联网出现之后才发生的,无论是云,通过网络随需调用的计算资源:大数据,关联的可分析在线数据:还是各种智能终端,都要依托互联网

大数据史记2013:盘点中国2013行业数据量

说人类步入了信息时代,有个事情是非常重要的,就是物理世界的信息化,包括信息基础设施建设和数字化,紧接着就是如何将数字化的东西(数据)进行储存.传输.交换以及使用,这一脉络伴随着移动互联网,云计算.大数据以及各种各样智能终端的出现,显得也越来越清晰.很多人都已认可,我们可能来到一个工业革命之后,一个比我们想象地更加重要的变革时代,我们把它命名为产业互联网的时代.毕竟这一切都是互联网出现之后才发生的,无论是云,通过网络随需调用的计算资源:大数据,关联的可分析在线数据:还是各种智能终端,都要依托互联网

拍砖闲话大数据——各行数据量“七嘴八舌”

说人类步入了信息时代,有个事情是非常重要的,就是物理世界的信息化,包括信息基础设施建设和数字化,紧接着就是如何将数字化的东西(数据)进行储存.传输.交换以及使用,这一脉络伴随着移动互联网,云计算.大数据以及各种各样智能终端的出现,显得也越来越清晰.很多人都已认可,我们可能来到一个工业革命之后,一个比我们想象地更加重要的变革时代,我们把它命名为产业互联网的时代.毕竟这一切都是互联网出现之后才发生的,无论是云,通过网络随需调用的计算资源:大数据,关联的可分析在线数据:还是各种智能终端,都要依托互联网

一起谈.NET技术,Silverlight 4中把DataGrid数据导出Excel—附源码下载

Silverlight中常常用到DataGrid来展示密集数据. 而常见应用系统中我们需要把这些数据导入导出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以实现? 在参考大量资料后 提供参考思路如下: A:纯客户端导出处理.利用Silverlight 与Javascript 进行交互实现导出Excel. B:服务器端导出.获得DataGrid数据源. 传递给WCF Service到服务器端. 然后把传回数据通过Asp.net中通用处理导出Excel方法

大数据量下的SQL Server数据库自身优化

1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里 由于CPU和内存的速度远大于硬盘的读写速度,所以可以把不同的数据文件放在不同的物理硬盘里,这样执行查询的时候,就可以让多个硬盘同时进行 查询,以充分利用CPU和内存的性能,提高查询速度. 在这里详细介绍一下其写入的原理,数据文件

sql server-菜鸟请教:bigint类型数据赋值给int型时出现溢出

问题描述 菜鸟请教:bigint类型数据赋值给int型时出现溢出 最近在做sqlserver存储过程,其中有这样一段查询,将bigint型数据oid赋值给@ID时出现溢出.已经看了好几天,怎么改都是溢出,都转换为字符串会有其他错误,,求解答.本人新手上路,希望多多指教. 如图所示,蓝图部分,曾试过convert和cast函数, 解决方案 是不是实际的值已经超过int的最大值了.我测试如果值没操作,不会有问题,比如 下面将@i就是int的最大值,再加一就会出错了 DECLARE @i BIGINT

web应用,导出Excel文件,Excel文件中时间显示的问题!

问题描述 由于Excel初始化显示数据,当我写数据时间格式是2009-7时,导出的Excel文件中显示的就是JUL-09,请问在创建Excel文件时如何对时间格式进行控制,正确显示时间2009-7,谢谢大家

visual studio-VS导出excel的头文件一堆

问题描述 VS导出excel的头文件一堆 用VS的MFC方案,添加"类型库中的MFC类"时,导出Excel的头文件.结果导出来很多头文件,如何像网上一样只导出一个Excel.h和Excel.cpp. 解决方案 新的类应该是很多文件了 老的才两个 解决方案二: VC6.0导出的是两个文件