如何在 C# 程序中使用特定版本的 Excel

Ori*_*das 5 c# versions excel-2007 excel-2003

出于多种原因,我在笔记本电脑上安装了 MSExcel 2003 和 MSExcel 2007。我需要这两个版本来为每个版本开发特定项目(文档级项目和应用程序级项目)。现在我需要做一个打开 Excel 文件的 WinForm 项目,读取一个 CustomXMLParts 并编写一个新的 Excel 文件。我正在使用对 Microsoft.Office.Interop.Excel 的引用,它使用 ..\Visual Studio Tools for Office\PIA\ Office12 \Microsoft.Office.Interop.Excel.dll 库(用于 Excel 2007)。对于此代码:

Microsoft.Office.Interop.Excel.Application excelApplication;    
excelApplication = new Microsoft.Office.Interop.Excel.ApplicationClass();
string version = excelApplication.Version;
Run Code Online (Sandbox Code Playgroud)

此时版本是“11.0”,但我需要打开Excel 2007,它必须是“12.0”,然后当程序尝试获取CustomXMLParts时,抛出异常,因为2003年不存在此方法。

如果我卸载 Excell 2003,它可以正常工作,但我需要同时使用两者(2003 和 2007)。当我重新安装 Excell 2003 时,它再次失败。我检查了 Interop.Excel 引用的“特定版本”属性,以确保它是正确的,并且我尝试修改 app.config oldVersion="12.0.0.0" 以使其与 Excel 2003 不兼容,但没有任何反应:

  <assemblyIdentity name="Microsoft.Office.Interop.Excel"  publicKeyToken="71E9BCE111E9429C" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="12.0.0.0"/>
Run Code Online (Sandbox Code Playgroud)

任何的想法?

我正在使用 Visual Studio 2008 和 Visual Studio Tools for Office。提前致谢。

Tim*_*ine 1

可能不是您正在寻找的答案,但请看看这个问题: 尝试使用 Excel 2007 进行办公自动化,但继续使用 Excel 2003