代码如下:Microsoft.Office.Interop.Excel.Application excelApp;                
excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks workbooks = excelApp.Workbooks;
object mo = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Open(filePath, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo);
......
我现在的问题是:执行workbooks.Open代码的时候就报错.当操作excel2003的时候,可以正常打开的,当操作excel2000的时候,就出错了.我的Microsoft.Office.Interop.Excel版本的dll是11.0的,是不是版本的问题啊?是不是我需要找一个Microsoft.Office.Interop.Excel版本的dll是9.0的?
如何解决该问题啊?c#中,winform的编程,程序即能支持同时操作excel2003或者excel2000的文件吧?

解决方案 »

  1.   

    你引用的那个dll文件最好是低版本的
    如果版本太高,低版本是无法打开的,版本只能向下兼容,不能向上兼容
      

  2.   

    Excel 不同版本中 workbooks.Open(filePath, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo, mo); 
    方法的参数个数是不一样的,在2003中参数个数是13个 ,而在2007中参数个数是15个。
    你可以不打开一个固定excel,你可以新建一个workbook,这样就不存在兼容问题了。以前我遇到这个问题的时候,当生成安装程序后,这个问题好像可以通过引用dll来解决,不过引用的时候最好引用低版本的。希望对你有用!
      

  3.   

    你的版本问题,OPEN参数一个是13,一个是15,之前改一个05年的项目时候遇到过这问题,LZ如果想要DLL,留邮箱给我~~
      

  4.   

    我解决了,谢谢各位了,的确是调用的参数不一样啊,我换了_open()这样去调用office2000的就可以了,哈哈。
    给分马上就你们