1)如何避免office版本不同的问题
    我电脑上装的是office2003,引用excel的com对象,本机及其它装有excel2003的电脑上,运行都没问题,但是若客户端是其它版本的office,由于com的classid不同,肯定就出问题了。如何解决?2)有无类似VB中的CreateObject的方法用以解决第一个问题?3)最郁闷的是,我的环境是windows2003+office2003,编译的程序拿到Windows2000+framework1.1+office2003的系统中,居然运行也报错“找不到文件或程序集名称"office",或找不到它的一个依赖项”

解决方案 »

  1.   

    原来我做WORD二次开发时也遇到过版本问题。
    问题1:用OFFICE组件的版本越低越好。我在做开发时,就是用的word2000的组件,这样生成出来的文档,只要在安装了Office2000及以上的版本的机器上都可以用。还有一点要注意的是OFFICE的各个版本,对象的方法的参数不同。
    问题三,在打包时把它引用的各个DLL都打包进去。
      

  2.   

    引用dll,只要是兼容版本,版本越低越好~ 这可以一定程度缓解lz的问题~
      

  3.   

    在c#中通过插件来操作excel,在部署的时候需要对应相应版本的office工具,这是必然的。所以对于1、2来说,尽量要求客户端安装同样版本的office工具(即使在程序中降低office插件的版本,在客户端用的是高版本,也会因版本不同而造成或多或少的问题)。
      

  4.   

    to 
    3)最郁闷的是,我的环境是windows2003+office2003,编译的程序拿到Windows2000+framework1.1+office2003的系统中,居然运行也报错“找不到文件或程序集名称"office",或找不到它的一个依赖项”不同操作系统中,注册表中的信息所在的位置不一定完全一样。最好分别查看一下,2000、xp、2003中的不同。
      

  5.   

    up 请教楼上各位,能够通过tlbimp解决问题么?
      

  6.   

    tlbimp工具是把excel.exe转换成dll文件的工具
    是针对2000以上的版本.
      

  7.   

    “在c#中通过插件来操作excel,在部署的时候需要对应相应版本的office工具,这是必然的。”具体怎样做呢?