求excel导入paradox、stringgrid的高效、速度快的方法。(50分)

  • 主题发起人 主题发起人 linsb
  • 开始时间 开始时间
L

linsb

Unregistered / Unconfirmed
GUEST, unregistred user!
p4,256M的机器上,用常规方法导入50000*16的excel需要十多分,难以忍受!
 
不可能!
EXCEL的每个表最多保存60000多条记录,多余的会被截取,你还是换个东东吧
 
我已转了55032*16的excel的表大约20分
 
用XLSReadWrite和XLSReadWriteII控件导入速度很快,但支持汉字有问题,如6个汉字只显示
3个,那位解决了?
 
建议你看看转化后EXCEL表,他不提示报错,但多余的记录都没了
 
To cx139
我已转成功,没丢记录!
 
哦,我上次用的是excel97,多余的记录都没了

给你个提示,用excel自己打开数据库,录制个宏,再delphi中调用他,应该是最快的吧,
毕竟是ms自己的东东。
 
〉〉用XLSReadWrite和XLSReadWriteII控件导入速度很快,但支持汉字有问题,如6个汉字只显示
〉〉3个,那位解决了?

估计是STRING的问题,如果有源代码,把STRING统统改为WideString试试
 
谢谢cx139的热心!
>>用excel自己打开数据库,录制个宏,再delphi中调用他--速度慢!
XLSReadWriteII控件很好,但没有源码,那位能帮帮忙,非常感谢!
 
两个思路:
1、直接生成Excel文件,就是说使用文件读写的方式生成Excel文件,这个在论坛上有帖子(最近5天内的,刚才没找到),另外参考QuickReport的源代码也可以完成。
2、使用Ado连接Excel,然后使用数据库操作语言写入Excel中。
 
噢,Excel导出,不是向Excel中导入,那么第一种思路就作废了。因为如果操作文件,你需要弄懂n种版本的Excel。
还是使用第二种方法吧。

设置属性ConnetionString
选择 Microsoft Jet 4.0 OLE DB provider
Select or enter a datasorce name -> 选择你要打开Excel文件
User name默认是Admin 密码默认为空,可以不用理会
Extended properties 设为:Excel 8.0
sql语句 select * from [yourtablename]
(注意要有[])
 
to yzhshi
我没测试过Ado连接Excel导入StingGrid的速度,能发一个例吗?
linsb3031@0451.com
谢谢!
 
to linsb:
您好,感谢你上次的作答,并献上120分表示谢意!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1013071

我的问题已经发到你的邮箱,还请帮忙解决!先谢了。

山木人 3MRen@sohu.com
 
To:linsb
用yzhshi的方法的确是个不错的选择,导入paradox是用Sql来实现的,效率应该不错,
导入到StringGrid,这个看来只有写遍历循环的语句来实现了,想快可快不起来,特别是数据多的时候。
 
后退
顶部