使用Excel“自动化”功能将数据输出到Excel的三种高效方法对比实验

 

使用“自动化”功能将数据从 ADO 记录集传输到 Excel
.NET C#版本:http://support.microsoft.com/kb/306023
.NET VB版本:http://support.microsoft.com/kb/306022
VB6版本:http://support.microsoft.com/kb/247412
以下是VB6下的测试数据,没做之前,估计ado方式最快,因为微软KB里也说CopyFromRecordset 是提高效率和性能的首选方法
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;246335
做了后,发现array方式最快,可能是实验方式不同,微软那个结果是基于从一个数据库直接用ADO读数据源而得出的.
我的实验是,基于文本文件读数据,然后临时生成ADO内存记录集,转换数组,写临时TXT文件这三种方式实验的.

其中遇到不少问题:
1.ADO方式适用于Office2000及以上版本,Office 97不支持ADO,需要用DAO方式
    '  字段中的值的长度不能超过911,否则会报-2147467259错
    '   微软文章上所说是不能包括任一字段,http://support.microsoft.com/default.aspx?scid=kb;zh-cn;246335
    '   英文是说either type in a recordset,http://support.microsoft.com/default.aspx?scid=kb;en-us;246335
2.txt方式
   '   速度相对于数组略差一点,但目前来说是最佳方式,因为没有像ADO和Array两种那样都有长度不超过911限制
3.array方式
   http://support.microsoft.com/default.aspx?scid=kb;zh-cn;246335
    '1.数组不能包含超过 255 个字符的元素
    '2.数组不能包含空值
    '3.数组中的元素个数不能超过; 5461个
    '经测试,在Office2003中1-3的限制有所变化,3和2无限制了,1的限制扩大到911

ADO记录集的字段和Array数组中元素的值长度不能超过911,这个值是不是为了让人记忆深刻呢?
以下实验以打开16个从几百KB到4M不等的文本文件为数据源
三种方式反复优化过实现代码,性能不断得到提升,但不管怎样array方式都是最快的.

ado方式txt方式array方式
309421091062
325024071703
368727192063
675053433391
468500453
516500469
16881500984
610718547
625594547
656594516
17651453938
257824221594
546532468
657578547
445341402641
797750578
445347663109
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值