Excel 连接管理器无法通过 SSIS VS19 连接

Excel Connection Manager Failed to Connect via SSIS VS19

SSIS 世界的新手,我之前在 Excel 版本 2016 和版本 2007-2010 [经过多年的故障排除后] 但后来就停止了工作 [对我读过的各种解决方案进行了无休止的测试,似乎是一个反复出现的问题],现在它仍然无法工作....任何帮助将不胜感激。

情况如下: 正在通过 VS19 导入 Excel 到 SSIS 环境。当我尝试在 Excel 源代码编辑器中查看 Table 时,出现以下错误消息:

无法检索连接管理器 'Excel Connection Manager' 的 table 信息。无法使用连接管理器连接到源 'Excel Connection Manager'。

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"

[2010 年以上][2016 年以下]

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office.0\Common\FilesPaths"

当前解决方法: 我必须将所有 excel 文件保存为 .xls 版本并将配置更改为 97-2003,以便我的 SSIS 从工作簿注册 tables。我究竟做错了什么?我错过了什么吗?它以前是工作的,现在是 C#$% 本身。

有人可以建议另一种解决方案,为什么我不能使用我的 excel 2010、2013 或 2016 版本将我的 Excel 源导入 VS19 中的 SSIS 环境。谢谢。

所以,我基本上不得不从头开始。擦拭我的笔记本电脑并重新安装所有东西。 SSMS、VS 所有附加组件,应有尽有。现在它运行完美,所以我认为要么是我下载东西的顺序,要么是笔记本电脑中已有的东西阻止了应用程序正常工作。天哪,那真是一场噩梦。但是我的问题现在已经解决了。

据我所知,问题几乎是在安装 Office 365 后立即出现的。确认您使用的是 32 位 Office 365。我遇到的所有迹象表明,Office 365 是 64 位的,并且安装过程删除了 32 位早期版本的 Office 产品。这就是问题的开始。

安装 AccessDatabaseEngine 是一个垃圾场补丁,用于将 32 位 dll 放回您的系统,供 Visual Studio 在您 运行 处于 32 位模式时使用。它不完美,可能无法为您提供较新版本 Visual Studio 所需的所有必需的 32 位 dll,这就是结果可能不稳定的原因。

问题的核心其实是Visual Studio。开发环境EXE,即使是VS 2019,依然是32位的。因此,当您按 F5 进入 运行 您的应用程序时,Dev Env EXE 会强制所有 dll 使用 32 位版本。而且 Office 365 在安装时强行删除了 Excel 32 位 dll,这就是为什么那么多人打垃圾场补丁(上图)的原因。

如果有某种方法可以强制 VS 使用 64 位开发环境 EXE,那么所有这些问题都会消失。但在那之前,您必须将所有标志设置为使用 64 位(以便您可以读取最新的 Excel 文件),将您的代码部署到具有 64 位 dll 的服务器,然后使用 hope-和祈祷的方法。您将大部分时间都在盲目工作,但您应该能够得到一些结果。