c#中COM互操作的问题

本文关键字:问题 互操作 COM | 更新日期: 2023-09-27 17:52:40

嗨,我有一个应用程序,其中一个作业将从Excel文件中拾取所有记录,并且要做到这一点,我使用COM互操作。

所以这工作得很好,它正在做我真正想要的。问题是,如果我们在项目中添加对库版本14.0 (Office 2010)的引用,但如果我们选择我们的应用程序,并且如果我们在使用不同版本的Office 2010的任何PC上运行它,他将无法识别库,因为它有不同的版本(e。g. Office 2007 - version 12.0).

有什么办法可以避免这个吗?

提前感谢!

c#中COM互操作的问题

我认为如果你使用后期绑定并使用版本独立的progid

如果你需要的只是在excel之外读取excel文件,我建议使用第三方完全管理的库,如"Spreadsheet Gear"或"GemBox",它们更快,更容易使用。(有开源的xls解析器和库开放的xml xlsx格式,但我没有测试他们)

如果你需要在excel内工作,我知道只有"插件Express"提供版本独立的办公室互操作dll。

最好的方法是针对您需要获得支持的最旧的Office版本进行编程。但实际上,你可以使用任何互操作版本来支持你需要的任意多个Office版本,参见在一个插件中支持多个Office版本。互操作程序集和后期绑定。