【问题标题】:Opening an Excel spread sheet in .NET on a x64 system在 x64 系统上的 .NET 中打开 Excel 电子表格
【发布时间】:2009-06-30 15:15:29
【问题描述】:

我无法使用以下连接字符串在 x64 服务器上使用 .NET 打开 Excel 电子表格

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + filePath + "; Extended Properties=Excel 8.0;"

我收到“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册。

我安装了 2007 Office System 驱动程序:数据连接组件并尝试使用 Microsoft.ACE.OLEDB.12.0 和此连接字符串

"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + filePath + "; Extended Properties=Excel 8.0;"

并得到“'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册。”

我搜索了谷歌,唯一的反应是这是一个 64 位的问题,有人知道如何解决这个问题吗?

【问题讨论】:

    标签: .net excel 64-bit


    【解决方案1】:

    您的应用程序需要设置为作为 32 位应用程序运行。这可以通过在 Visual Studio 配置管理器中将可执行项目的目标平台从 AnyCPU 更改为 x86 来实现。

    如果您想在更改解决方案配置之前测试这将如何与您的应用程序一起工作,您可以使用 corflags.exe 实用程序。这仅适用于您的应用程序没有强命名或 Authenticode 签名,否则您需要将其辞职。从 Visual Studio 命令提示符类型:

    corflags.exe <path and exe file name> /32BIT+
    

    【讨论】:

      【解决方案2】:

      Excel 2003 / 2007 OleDB 驱动程序只有 32 位。我的理解是您只能在 32 位应用程序中使用它们。

      SpreadsheetGear for .NET 将打开 xls 和 xlsx 工作簿,它在 64 位和 32 位 .NET 2.0+ 中经过测试和支持。

      您可以下载评估版here 并查看实时 ASP.NET 示例(C# 和 VB)here

      免责声明:我拥有 SpreadsheetGear LLC

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-16
        • 1970-01-01
        • 2010-11-08
        • 2020-08-05
        • 2012-06-11
        • 1970-01-01
        • 2010-12-22
        • 2012-04-07
        相关资源
        最近更新 更多