c#中的Excel自动化通过com互操作性为2003-2010版本

有不同的办公室版本,不同的comtypes库来pipe理它们。

任何人都可以告诉我,我应该如何编写代码来操作不同的Excel版本? PIA的办公室怎么样,我应该包括他们所有的项目?

如何解决办公室多版本问题?

1)利用dynamic绑定

2)坚持迟到的约束力

而且你的代码可以在任何版本上运行。

// work with any version Type wordType = Type.GetTypeFromProgId( "Word.Application" ); dynamic wordApp = Activator.CreateInstance( wordType ); // late binding + dynamics - always works wordApp.Visible = true; 

这与编写一个.NET程序并期望它在Windows 98和Windows 7上运行没有根本的区别。第一个select很明显,您需要定位到.NET 2.0,否则它不会运行在98与Office一样,select你想要支持的最低版本。

微软已经做了一个了不起的工作保持COM互操作Office向后兼容,赔率是好的,用户使用较新版本的Office可以毫无问题地使用你的程序。 这当然不是保证,你需要testing它。 这本身应该是您愿意支持的Office版本的指南。 最好是你有权访问的一个。 MSDN订阅是获取不同版本的好方法。

使用Wiktorbuild议的后期绑定是你想要做的最后一件事。 它不会阻止您意外地使用早期版本中不可用的界面。