就这一句 出错
createOleObject('Excel.application');
在xp下都好好的,我在xp下用delphi7开发 客户是win7的 怎么解决呢?

解决方案 »

  1.   

    难道是application首字母没大写?手头没win7系统。
      

  2.   

    大写 也是一样的  
    win7是excel2007
    在xp+delphi7程序引用是comobj,excel97,excel2000;
    没有excel2007,也加不了 
      

  3.   

    我用excel 2007+turbo delphi在XP下没问题。
      

  4.   

    excel 2007和excel 2003的com接口基本是一样的。我在xp下面的程序完全不用修改就可以在excel 2007上运行,是不是win 7 UAC的问题?
      

  5.   

    EXCEL 版本问题 或是没有安装
      

  6.   


    UAC  我已经右键选择 管理员运行 还试了兼容模式运行 都是一样我下载的是精简版 ,有些人说 要注册组件?  怎么注册呢?而且如果客户是精简版的话 不可能叫客户重装个office吧
      

  7.   

    精简版可能没注册这个组件。
    他非要用精简版本的话,你就直接操作xlsx(ZIP文件,可以解压开,里面全是XML)文件。他不装都行。
      

  8.   

    可以试试下面的代码,一个项目里用过:uses ComObj, ActiveXfunction My_CreateOleObject(const ClassName: string; out Ole_Handle: IDispatch): Boolean;
    var
      ClassID: TCLSID;
      l_Result: HResult;
    begin
      Result := False;
      l_Result := CLSIDFromProgID(PWideChar(WideString(ClassName)), ClassID);
      if (l_Result and $80000000) = 0 then
      begin
        l_Result := CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
          CLSCTX_LOCAL_SERVER, IDispatch, Ole_Handle);
        if (l_Result and $80000000) = 0 then
          Result := True;
      end;
    end;
    procedure TForm1.btn1Click(Sender: TObject);
    var
      XLApp: OleVariant;
      l_Excel_Handle: IDispatch;
    begin
      try
        XLApp := CreateOleObject('Excel.Application');
        XLApp.WorkBooks.Open('c:\test.xls');
        XLApp.visible := False;
      except
        on E: Exception do
        begin
          if not My_CreateOleObject('Excel.Application', l_Excel_Handle) then
          begin
            XLApp := Unassigned;
            raise exception.Create('启动Excel失败,可能没有安装Excel!');
            Exit;
          end;
        end;
      end;还有不知道你为什么要用OLE的方式访问Excel,如果是想导入数据库的话,可以试试ADO的方式
      

  9.   

    推荐XLSReadWrite
    参考
      

  10.   


    win7 不行啊  提示"启动Excel失败,可能没有安装Excel!"..........
      

  11.   


    win7 不行啊 提示"启动Excel失败,可能没有安装Excel!"
      

  12.   


    要注册哪些组件呢?  这精简版都有VBA
      

  13.   

    修改成如下试试:
    createOleObject('Excel.exe');
      

  14.   

    修改成如下试试:
    createOleObject('Excel.exe');
      

  15.   

    修改成如下试试:
    createOleObject('Excel.exe');
      

  16.   

    我的delphi2010+Excel2010+Win7操作没有问题,再仔细看看