起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 2641|回复: 65

【结贴】TExcelToTable导入问题

[复制链接]
发表于 2009-9-21 15:20:18 | 显示全部楼层 |阅读模式
用TExcelToTable来导入数据,当数据10000条时,就卡死了
这个能解决吗?用户的Excel表大概有30000多条记录。
回复

使用道具 举报

发表于 2009-9-21 15:40:06 | 显示全部楼层
看看能不能设置设置Texceltotable控件的startrow和endRow分批进行导入?比如一次导入5000
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-21 15:59:42 | 显示全部楼层
1、如何获取Excel表格中有多少行是有记录的?想用代码,分批来导入,这个可行吗?
2、如何获取Excel表格中的Sheet1名字是什么?
这两个能实现吗?
回复 支持 反对

使用道具 举报

发表于 2009-9-21 16:15:42 | 显示全部楼层
这个需要借助vba代码了。
楼主可以参考一下相关帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-21 16:35:16 | 显示全部楼层
能给具体说说吗?

AExcel.ActiveSheet.UsedRange.Rows.Count;行数
网上找到的,不知道平台怎么用!
回复 支持 反对

使用道具 举报

发表于 2009-9-21 16:38:06 | 显示全部楼层
平台中调用vba脚本:
请用“DispatchHelper”做关键字搜索一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 10:58:17 | 显示全部楼层
在excel中,Sheets(1).Columns(1).Find("*", , xlValues, , , 2).Row是查得出来有几行记录的,但是就是不会写到平台,我创建了Sheets这个的对象,到了这个Columns就不知道应该怎么做了。
回复 支持 反对

使用道具 举报

发表于 2009-9-23 11:05:08 | 显示全部楼层
最初由 jiahaiming 发布
[B]平台中调用vba脚本:
请用“DispatchHelper”做关键字搜索一下。 [/B]

论坛中有很多类型的例子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 17:30:27 | 显示全部楼层
帮忙看一下,这一行有错  s :=row.PropertyGet('count',[]).ToString;          //-----------这句出错了
是什么问题?错误如图:
procedure TFBDR.BitBtn5Click(Sender: TObject);
var
  s, strFname, lFilename : string;
  App, Exc, E1 : object;
  FApp, FDocs, Ac, range, row : system.DispatchHelper;
begin
  if OpenDialog1.Execute then
  begin
    lFileName := OpenDialog1.FileName;
    App := ComObj.CreateOleObject('Excel.Application');
    FApp := system.DispatchHelper.Create(App);
    FApp.PropertyPut('visible',[true]);
    Exc := FApp.PropertyGet('Workbooks',[]);
    FDocs := system.DispatchHelper.Create(Exc);
    FDocs.InvokeMethod('open',[lFileName]);

    E1 := Fapp.PropertyGet('ActiveSheet',[]);
    Ac := system.DispatchHelper.Create(E1);
    range := System.DispatchHelper.Create(ac.PropertyGet('UsedRange',[]));
    row := System.DispatchHelper.Create(range.PropertyGet('Rows',[]));
    s :=row.PropertyGet('count',[]).ToString;          //-----------这句出错了

    (E1 as System.IDisposable).Dispose;        //释放
    (App as System.IDisposable).Dispose;        //释放
    (Exc as System.IDisposable).Dispose;        //释放
  end;
end;

行总数.gif

243.22 KB, 下载次数: 542

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 17:31:31 | 显示全部楼层
原代码是:ActiveSheet.UsedRange.Rows.Count
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 22:19 , Processed in 0.047533 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表