在程序中调用了ExcelApplication,ExcelWorkbook控件,用ExcelWorkbook.saveas保存文件,但由于Excel2000和Excel2003的saveas使用的参数有所不同,使得程序不能支持在Excel2000下运行,请各位老师指点如何解决此问题?又及:已经通过ExcelApplication.version判断版本号,但Excel2000下saveas参数数量比Excel2003少一个,使得无法编译程序。

解决方案 »

  1.   

    想不到更好的方法,可以用这个替代吗,操作Excel2000和Excel2003分别用2个Unit来进行,运行时根据Excel的版本号来调用相关函数进行。
      

  2.   

    通过创建Ole Excel97的对象可以兼容
    FExcel := CreateOleObject('Appliation.Excel97');
      

  3.   

    先在install packages去掉officexp的包,加载office2k的包(dcloffice2k70.bpl),然后用以下语句搞定。      if (ExcelApp.Version[LCID]='8.0') or (ExcelApp.Version[LCID]='9.0') then
            ExcelWorkbook.SaveAs(sFile,xlNormal,'','',false,false,null,null,null,false,false,LCID)
          else
            ExcelWorkbook.SaveAs(sFile,xlNormal,'','',false,false,0,null,null,false,false,LCID);
      

  4.   

    谢谢各位,已搞定。baby_hhh:不必那样麻烦,只要uses里的ExcelXP改成Excel2000就行了用2000格式写的在XP下可以运行。:-)