2009-09-09 34 views
0

我想知道如何做到这一点的最佳方式:在一个应用程序中的两个版本的Excel?

我有一个应用程序可以与Excel DOM一起使用。用户可能安装了Excel 2003或2007,我不知道哪一个是先验的。 Mine是一个C#控制台应用程序。

如何让我的应用程序兼容两者?是否可以在运行时找到相应的版本并修改Using语句?例如,我似乎记得,要使用Excel 2003,我写Using Microsoft.Excel,或只有Excel与相应的参考DLL,但对于2007年,我需要Using.interop.Excel或类似的东西...不是现在的点,但使得问题更清楚。此外,许多类型的Excel 2003都没有明确定义(例如,series,例如ArraysObjetc),而在2007年,其中一些更强烈地“键入”等。

我会如果问题还不够清楚,请高兴编辑。

谢谢。

+0

如果您针对Excel 2003/2007运行您的代码,这是否一样? 如果不是,您希望如何将不兼容的功能与兼容的功能分开? – shahkalpesh 2009-09-09 16:47:11

回答

1

考虑使用,这是一个处理许多Office版本的包装库。

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

0

我们试了一会儿才得到一些针对Excel 2003和Excel 2007运行的COM Interop测试代码,但最终决定仅支持Excel 2007,因为API差异。

如果你确实需要同时支持,我的建议是有两个版本的应用程序/库。第一个将写入Excel 2003,并构建在仅安装了Excel 2003的计算机上。第二个将被写入以支持Excel 2007,并构建在仅安装了Excel 2007的计算机上。

您可能想尝试,它支持.xls和.xlsx文件,并且将摆脱对Excel的任何依赖。您可以下载免费评估here

声明:我自己的SpreadsheetGear LLC

相关问题