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

53次阅读

共计 673 个字符,预计需要花费 2 分钟才能阅读完成。

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

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 可支持(目前没有发现环境问题)

正文完
 0