C# Winfrom在x32和x64环境中读取Excel

1.OleDb读取(必须装Office,Office版本不一样,参数设置不同)code

2.Microsoft.Office.Interop.Excel读取(支持win7 x64)
win7 x32中报对象

  • .没法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Excel.Application”。此操做失败的缘由是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因如下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。

在网上找解决方法:
4位系统下,有些组件(微软的)只有32位版本,64位的应用程序调用不了32位的COM组件,返回的结果就是没有注册类
别。 在64位系统中,VS2008默认会生成64位的程序,你能够改变程序的部署平台为×86来生成32位的程序。
解决方法:
在“解决方案”-》“开发项目的名称”,鼠标右击,单击“属性”-》“生成”-》“目标平台”,把“AnyCPU”改为“
×86”,从新编译程序便可。 (问题没有解决)接口

  • .Microsoft.Office.Interop.Excel;的嵌入互操做类型改成false

报错以下:开发

未能加载文件或程序集“Interop.Office, Version=99.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。

3.NPOI读取Excel 可支持(目前没有发现环境问题)部署

相关文章
相关标签/搜索