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

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

你可能感兴趣的:(c#,winform,windows)