支持Office Automation的不同Office版本

时间:2011-06-21 20:06:19

标签: c# .net office-interop

我们创建了一个使用Office 2007(Excel 2007)从Excel工作表读取数据的应用程序。然而。我注意到,当我想在安装了Office 2003的系统上部署应用程序时,它会崩溃,因为此版本的办公室需要引用其他PIA(和其他dll)。

我是否需要编译不同版本的应用程序才能支持不同版本的Office,或者针对此问题是否有更优雅的解决方案?

我使用Visual Studio 2010(C#)和.Net 4.0平台。

3 个答案:

答案 0 :(得分:21)

当您使用.NET 4时,您可以使用“嵌入式”PIA(又名“No PIA”)。更改Office引用上的选项,以便“嵌入互操作类型”为True。

只要您使用部署的计算机上支持的Office功能,您就可以了。

这也意味着: - 您无需担心PIA本身不会出现在目标计算机上 - 现在,在代码中使用VARIANT表示原始COM接口中dynamic类型的任何方法或属性,这可以使您的生活更简单

答案 1 :(得分:1)

根据您是否有任何其他要求(您说从Excel读取数据),您可以使用OLEDB驱动程序连接到Excel文件并以SQL方式查询。

实施例: http://codehill.com/2009/01/reading-excel-2003-and-2007-files-using-oledb/

答案 2 :(得分:0)

您可以为多个版本的办公室引用PIA,并在运行时找出路由您的电话。