通过com互操作性在c#for 2003-2010版本中实现Excel自动化

时间:2012-01-05 20:43:00

标签: c# excel com-interop

有不同的办公室版本,不同的com类型库用于管理它们。

有谁能告诉我如何编写代码来操作不同的Excel版本? PIA办公室怎么样,我应该把它们全部包含在项目中吗?

如何解决办公室多元化问题?

2 个答案:

答案 0 :(得分:4)

这与编写.NET程序并期望它在Windows 98以及Windows 7上运行没有根本的区别。第一个选择很明显,你需要针对.NET 2.0,否则它不会运行98.与Office相同,选择您要支持的最低版本。

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

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

答案 1 :(得分:3)

1)利用动态绑定

2)坚持后期绑定

并且您的代码适用于任何版本。

// work with any version
Type wordType = Type.GetTypeFromProgId( "Word.Application" );

dynamic wordApp = Activator.CreateInstance( wordType );

// late binding + dynamics - always works
wordApp.Visible = true;