delphi+OLE操作Excel正常,系统不能操作其他excel(100分)

  • 主题发起人 主题发起人 dx163805
  • 开始时间 开始时间
D

dx163805

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己的程序操作Excel功能都有了,可是有些数据想从其他的excel文件拷贝,发现不能正常操作另外的excel文件了,着急求解,郁闷中。。。求人点拨一下。。。谢了先
 
希望有高手给解说一下,自己试了好长时间,不得门道,羞愧......[:(]
 
我是这样操作的:
self.OleContainer1.CreateObjectFromFile(CurrentFileName,true);
self.OleContainer1.DoVerb(OvShow);
OleVariant := self.OleContainer1.OleObject;
OleVariant.Application.CommandBars['Standard'].Visible := false;
OleVariant.Application.CommandBars['Formatting'].Visible := false;
OleVariant.Application.DisplayFormulaBar := false;
self.OleContainer1.DoVerb(OvShow);
CurrentFileName是我在程序里要操作的excel文件,这个功能没有任何问题,就是另外打开的excel不能实现正常的编辑操作,比如拷贝、复制、浏览,好像是不可控制,只有退出我的程序,另外打开的excel操作才恢复正常。
我用的是delphi6,请大家给帮忙看看...等待中......
等待ing
 
想用第三方控件的话,可与我联系
qq:292044357
 
我把论坛上的帖子都快浏览完了,看见了好几个人文相同的问题,有的说是已经解决,要修改OLE控件的代码,不知道是咋实现的,希望有高手给指点一下,不胜感激,着急,急...急...急...[:(]
 
开始向上苍祈祷,希望有解决办法的老鸟们看见了能伸出援手,谢谢了,一千个谢谢,一万个谢谢,一亿谢谢了......阿门,阿密陀佛,万能的上帝......[:(]
 
xuxiaohan (2004-01-13 13:46:00)
是呀,就是这样的。
我是这样解决的:
在WM_Active 中
application.ProcessMessages;
lockWindowupdate(handle);
try
try
oc.DoVerb(ovShow);
Realign;
except
showmessage('dsdsd');
end;
finally
lockWindowupdate(0);
end;
if not FosAssigned then
begin
oldSize:=getSize;
FosAssigned:=True;
end;
可是我试了一下没有效果,还是老样子,程序之外的excel不能正常操作,非得抢从运行程序开始以来第一个运行的excel的handle,都这么长时间了,也没有哪个大虾给看看。。。。。。
 
根据我的实践,是因为启动了 Excel 的服务程序,怎样去掉,我也不清楚!

我用 Excel 控件 创建的 Excel导入数据程序,和你的效果一样!
 
能不能给OLE指定Excel的服务,或者单独给他启动一个Excel,只要是不干扰别的excel运行就行,现在的硬件,多启动一个服务,对系统的影响微乎其微,可是要影响到其他程序的运行,哎,可就罪过海了去了,一直在头疼这个问题。。。。。。
 
一直在关注,希望能解决。
 
后退
顶部