SSIS 从 Excel.xlsx 加载数据而不安装 32 位驱动程序

SSIS Load data from Excel .xlsx without installing 32 bit driver

我需要将扩展​​名为 .xlsx 的 excel 中的数据加载到 Netezza table。我收到以下错误。 请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.12.0 未注册。如果未安装 32 位驱动程序,运行 64 位模式的软件包。

有什么方法可以在不安装 32 位驱动程序的情况下使用扩展名为 .xlsx 的 excel 吗?

将项目 属性 Run64BitRuntime 更改为 True.

可以在 Microsoft 的文章中找到更多信息 - 64 bit Considerations for Integration Services

When you run a package in 64-bit mode, you might not be able to connect to as many data sources as you can when you run a package in 32-bit mode. Some .NET Framework Data Providers and native OLE DB providers might not be available in 64-bit versions. For example, the Microsoft OLE DB Provider for Jet, which connects to Access databases and Excel spreadsheets, is not available in a 64-bit version. Also, the SQL Server Compact Provider, which connects to SQL Server Compact data sources, is not available in a 64-bit version.

The ACE Provider and its Excel 2010 driver (64-bit, 32-bit) can be used with Integration Services under certain circumstances. For more information and to download the provider, see Microsoft Access Database Engine 2010 Redistributable.

32 位 SSIS 设计器仅显示 32 位 安装在本地计算机上的提供程序。配置一个 连接管理器使用特定的 64 位提供程序,您必须安装 开发计算机上供使用的 32 位版本的提供程序 在设计时。即使提供程序的 32 位版本是 安装后,您仍然可以 运行 64 位模式下的软件包,无论是在 开发环境和部署后。 32 位和 64 位 提供者的多个版本具有相同的 ID。因此,SSIS 运行时间 将 select 使用适当版本的提供程序。为了 例如,你 运行 开发环境中的包 64 位计算机。默认情况下,该软件包使用 64 位版本的 提供程序,因为 Run64BitRuntime 项目的默认值 属性 是 True