我现在要做的软件中要将一些数据从Excel中读入,和写入Excel表中?但是在某些表的操作中,对于Excel2000可以使用,但是Excel2003就不能使用了?同样,将这些在2000中可以打开的表,在2003也不能打开。
我用的编程方式是  定义Variant类型的变量进行操作Excel。
  ExcelApp: Variant;
  ...
  ...
  ExcelApp := CreateOLEObject('Excel.Application');
  ExcelApp.Visible := false;
  ExcelApp.WorkBooks.Open(filename);
  ExcelApp.WorkSheets[1].Activate; 请问用什么方法,才能使其对Excel2003也可以操作呢?

解决方案 »

  1.   

    安装office2003 for delphi的组件
      

  2.   

    2003中微软对一些接口进行了升级。看2003的宏,这样就不会出错。也可以参考VBAXL10.CHM这个文件,在安装目录下。
      

  3.   

    不用装什么组件:function TFrm_asset.Checkexcel: Boolean;
    var
      Curexcel: string;
    begin
      Result := True;
      Curexcel := GetRegStringValue('\Excel.Application\CurVer','');
      if Curexcel = '' then
      begin
        Application.MessageBox('请先安装 excel 97 或 excel 2000!或 excel XP',
           PChar(self.Caption), MB_OK + MB_ICONSTOP);
        Result := False;
        Exit;
      end;  if (Curexcel <> 'Excel.Application.8') and (Curexcel <> 'Excel.Application.9') then
      begin
         Curexcel := GetRegStringValue('\Excel.Application.10', '');
          if Curexcel <> '' then Curexcel := 'Excel.Application.10';
        if Curexcel = '' then
        begin
          Application.MessageBox('无法运行 excel 97 或 excel 2000,' + #13#10
                               + '请检查 excel 97 或 excel 2000 是否已经正确安装。',
             PChar(self.Caption), MB_OK + MB_ICONSTOP);
          Result := False;
          Exit;
        end;
      end;  try
        Fexcel := CreateOleObject(Curexcel);
        if VarIsEmpty(Fexcel) then
        begin
          Application.MessageBox('无法运行 excel 97 或 excel 2000,' + #13#10
                               + '请检查 excel 97 或 excel 2000 是否已经正确安装。',
             PChar(self.Caption), MB_OK + MB_ICONSTOP);
          Result := False;
          Exit;
        end;
      except
        Application.MessageBox('无法运行 excel 97 或 excel 2000,' + #13#10
                             + '请检查 excel 97 或 excel 2000 是否已经正确安装。',
           PChar(self.Caption), MB_OK + MB_ICONSTOP);
        Result := False;
        Exit;
      end;
    end;
      

  4.   

    我是说我的程序中,Excel2000和Excel2003不能兼容,有没有办法解决啊?
    请大家说具体一点好吗?我不清楚啊!
      

  5.   

    我现在要做的软件中要将一些数据从Excel中读入,和写入Excel表中?但是在某些表的操作中,对于Excel2000可以使用,但是Excel2003就不能使用了?同样,将这些在2000中可以打开的表,在2003也不能打开。
    我用的编程方式是  定义Variant类型的变量进行操作Excel。
      ExcelApp: Variant;
      ...
      ...
      ExcelApp := CreateOLEObject('Excel.Application');
      ExcelApp.Visible := false;
      ExcelApp.WorkBooks.Open(filename);
      ExcelApp.WorkSheets[1].Activate; 请问用什么方法,才能使其对Excel2003也可以操作呢?
      

  6.   

    ding,我用VC作的程序,在有的机器上就能用,有的又不能用,非要到具体的机器上编一下才行