代码之家  ›  专栏  ›  技术社区  ›  Dervin Thunk

一个应用程序中有两个版本的Excel?

  •  0
  • Dervin Thunk  · 技术社区  · 15 年前

    我想知道最好的方法:

    我有一个与Excel DOM一起工作的应用程序。用户可能安装了Excel2003或2007,我不知道以前安装的是哪一个。我的是一个C控制台应用程序。

    如何使我的应用程序与两者兼容?是否可以在运行时找到什么版本并相应地修改using语句?例如,我似乎记得要使用Excel2003, Using Microsoft.Excel ,或者只是 Excel 使用相应的引用dll,但对于2007年,我需要 Using.interop.Excel 或者类似的…现在还没有到这个地步,但是问题更清楚了。此外,Excel2003的许多类型都没有明确定义。( series 例如,是 Arrays 属于 Objetc ,而在2007年,其中一些更为强烈的“类型化”等。

    如果问题还不够清楚,我很乐意编辑。

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Eric J.    15 年前

    考虑使用 MS Office For Net 一个包装库,用于处理Office的许多版本。

    如果这对您不起作用,请改为将代码编写到需要支持的互操作程序集的最旧版本。对于一个项目,我在PC上安装了当前版本,但在我用作构建计算机的虚拟机上安装了我支持的最旧版本。在这种情况下,我必须小心地只使用旧API中可用的东西(否则编译会在构建虚拟机上失败)。

        2
  •  0
  •   Joe Erickson    15 年前

    我们尝试了一段时间让一些COM互操作测试代码在Excel2003和Excel2007上运行,但由于API的不同,最终决定只支持Excel2007。

    如果您真的需要同时支持这两个版本,我建议您使用两个版本的应用程序/库。第一个版本将被写入Excel2003,并建立在一台只安装了Excel2003的机器上。第二个版本将被编写来支持Excel2007,并构建在一台只安装了Excel2007的计算机上。

    你可能想试试 SpreadsheetGear for .NET 它支持.xls和.xlsx文件,并将消除对Excel的任何依赖。您可以下载免费评估 here .

    免责声明:我拥有SpreadsheetGear LLC