使用Office Automation支持不同的Office版本

本文关键字:Office 版本 支持 Automation 使用 | 更新日期: 2023-09-27 18:00:00

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

我需要编译不同版本的应用程序才能支持不同版本的Office吗?还是有更优雅的解决方案来解决这个问题?

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

使用Office Automation支持不同的Office版本

在使用.NET 4时,可以使用"嵌入式"PIA(也称为"无PIA")。更改Office引用上的选项,使"嵌入互操作类型"为True。

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

这也意味着:-您不必担心PIA本身不存在于目标机器上-任何在原始COM接口中属于VARIANT类型的方法或属性现在都在代码中使用dynamic表示,这可以简化

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

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

您可以为多个版本的office引用PIA,并在运行时确定从哪个路由呼叫。