支持Office Automation的不同Office版本

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

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

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

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

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

它还意味着: – 您不必担心PIA本身不存在于目标机器上 – 原始COM接口中任何VARIANT类型的方法或属性现在都使用dynamic代码表示,可以让你的生活更简单

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

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

您可以参考PIA的多个版本的办公室,并在运行时找出从哪个路由您的电话。