我们创建了一个使用Office 2007 (Excel2007)从Excel工作表中读取数据的应用程序。然而。我注意到,当我想要在安装了Office2003的系统上部署应用程序时,它会崩溃,因为此版本的office需要引用其他PIA(和其他dll)。
我是否需要编译不同版本的应用程序才能支持不同版本的Office,或者是否有更好的解决方案来解决此问题?
我使用的是Visual Studio2010 (C#)和.Net 4.0平台。
发布于 2011-06-22 04:09:05
由于您使用的是PIA4,您可以使用“嵌入式”PIA(也称为"No .NET“)。更改Office引用上的选项,使"Embed Interop Types“为True。
只要你只使用在你部署的机器上支持的Office功能,你就应该没问题。
这还意味着:-您不必担心PIA本身不存在于目标计算机上--在原始COM接口中属于VARIANT类型的任何方法或属性现在都可以在代码中使用dynamic表示,这可以使您的工作变得更简单
发布于 2011-06-22 04:12:12
根据您是否有任何其他要求(即从excel中读取数据),您可以使用OLEDB驱动程序连接到excel文件并以SQL方式对其进行查询。
示例:http://codehill.com/2009/01/reading-excel-2003-and-2007-files-using-oledb/
发布于 2011-06-22 04:08:49
您可以参考多个office版本的PIA,并在运行时确定从哪个版本来路由您的呼叫。
https://stackoverflow.com/questions/6431348
复制相似问题