Server页上不有吗?
Delphi的Demos里面有很详细的例子。
\Demos\Activex\Oleauto\Word8
Demos\Activex\Oleauto\SrvComp\Word

解决方案 »

  1.   

    var wordapp:variant;
        exelapp:variant;
    begin
       wordapp:=olecreateobject('word.application');
       wordapp.visible:=true;
       exelapp:=loecreateobject('execl.application');
       exelapp.visible:=true;
       .end;
      

  2.   

    谢谢你们的回答,我要打开的是一个已经存在的excel文件,如:c:\book1.xls.你们的都是打开excel和word的执行程序。可不可以麻烦你们再费心一下?
      

  3.   

     那你用ole容器不完了吗?书上到处都是!
      

  4.   

    ShellExecute(. ,'test.xls',......);
      

  5.   

    用Shell绝对可以,因为这些文档的类型已与Office关联了
      

  6.   

    ExcelHandle:=CreateOleObject('excel.application');
    ExcelHandle.Visible:=true;
    FileName:='D:\pm\report\Book1.xls';
    ExcelHandle.WorkBooks.Open(FileName);
      

  7.   

    我有一个数据库表,其中有字段“附件名称”和”附件路径”两个字段,当我选中其中一条记录时,根据”附件路径”我点击”显示附件”按钮,调出我的excel文档,在delph或office环境下都可以,请问怎样实现,用ole可以吗?怎样用?或者有没有简单一点的方法。急盼!!!!!!!!!!!!谢谢!!!!!!!!!!
      

  8.   

    ShellExecute(...,'open',pchar(路径+名称),.......)
      

  9.   

    两种方法: 
    dialogs(hyf)    的  OLE
    Apollo47(阿波罗) 的  SHELL 
      

  10.   

    dialogs(hyf) 的方法好像编译通不过,不知是什么问题?
    excelhandle是variant类型,filename是pchar类型
    问题出在filename上,ExcelHandle.WorkBooks.Open(FileName);它出现这个错误[Error] Unit1.pas(36): Type not allowed in OLE Automation call。
    我的createoleobject是这样的:
    function CreateOleObject(const ClassName: string): IDispatch;
    var
      ClassID: TCLSID;
    begin
      ClassID := ProgIDToClassID(ClassName);
      OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
        CLSCTX_LOCAL_SERVER, IDispatch, Result));
    end;不知对不对???