起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hanker_to_sun

【结贴】[请求]Createoleobject的问题**

[复制链接]
发表于 2008-4-23 14:50:36 | 显示全部楼层
我们这里没有现成的代码,你参照2楼3楼链接中的例子先自己研究一下吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 16:22:15 | 显示全部楼层
上面的问题我照着改了一下,代码如下:
   e := ComObj.CreateOleObject('excel.application');
      excel := System.DispatchHelper.Create(e);
      excel.PropertyGet('Workbooks',[]);
这样改和原来写的“e.Workbooks.Add;”这个是一回事不?

现在还有个问题,下面的代码该怎么改,其中“vtitle[c];”是我声明并且赋值了的字符型数组。
for c := 1 to C_TOTALCOL do
e.sheets[1].cells[1, c] := vtitle[c];
回复 支持 反对

使用道具 举报

发表于 2008-4-23 17:22:28 | 显示全部楼层
public
       Fxls , docsbject;
        FApp,FDocs ispatchHelper;
    {public declarations}
  end;

implementation


procedure TMainForm.Button1Click(Sender: TObject);
var
  lFileName: String;
begin
  if OpenDialog1.Execute then
  begin
    lFileName := OpenDialog1.FileName;
    fxls := ComObj.CreateOleObject('excel.Application');
    FApp := DispatchHelper.Create(fxls);
    FApp.PropertyPut('Visible', [True]);

    docs := FApp.PropertyGet('Workbooks',  []);
    FDocs := DispatchHelper.Create(docs);

    FDocs.InvokeMethod('Open', [lFileName]);
    end;
end;

procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
   fapp.InvokeMethod('save', []);
  fapp.InvokeMethod('quit', []);
end;


procedure TMainForm.Button2Click(Sender: TObject);
var
lcells: DispatchHelper;
begin
  lcells := DispatchHelper.Create(FApp.PropertyGet('cells', [5,5]));
  lcells.PropertyPut('value',[edit1.text]);
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-24 08:46:40 | 显示全部楼层
谢谢热心会员lixy,前面的问题已经解决了,但是还有个小问题想请教一下:
我现在要给excel里的第一行赋值,要赋的值存在一个vtitle[]数组里,这个
“lcells.PropertyPut('value',[]);”要怎么改啊。
我把[]替换成数组vtitle[]会报错。
下面的是这一段代码
for c := 1 to 7 do
  begin
      lcells := System.DispatchHelper.Create(FApp.PropertyGet('cells', [1,c]));
      lcells.PropertyPut('value',[]);
  end;
回复 支持 反对

使用道具 举报

发表于 2008-4-24 08:54:51 | 显示全部楼层
那你把数组的值赋给一个变量,再用这个lcells.PropertyPut('value',[变量]);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-24 10:08:12 | 显示全部楼层
呵呵,真的谢谢您了。问题已经解决了。
最后想问下,我在执行保存的时候,他每次都会弹出是否覆盖这个提示框:

我不想让他有这个提示,而是直接覆盖,参数该怎么改啊,现在写的是这个:

lFileName := 'D:\毕业论文\2008-01-18\data.xls';      

fapp.InvokeMethod('save', [lFileName]);
  fapp.InvokeMethod('quit', []);
回复 支持 反对

使用道具 举报

发表于 2008-4-24 10:10:11 | 显示全部楼层
您去查微软的vba去,这个我也不知道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-24 10:22:47 | 显示全部楼层
好的,谢谢,可以结贴了。
最后再次感谢lixy的热心帮助。。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 17:55 , Processed in 0.041705 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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