无法通过SSIS连接到Excel

时间:2019-03-19 12:20:35

标签: sql-server excel ssis oledb etl

SSIS无法识别Excel文件。

错误:

  

无法从连接管理器“ Excel连接管理器”中检索表信息
  使用连接管理器“ Excel Connection Manager”无法连接到源

我曾尝试安装32位可再发行组件,该组件解决了该错误,但是当我使用SQL存储过程在外部运行此组件时,它却失败了,如果我安装了64个可再发行组件,但在SSIS中却失败了,这也可以解决, >

因此,我需要32位才能在SP中运行,而需要64位才能在SSIS中运行,但是我不能同时安装两者。这个问题有解决方案吗?

5 个答案:

答案 0 :(得分:0)

有2种解决方案:

(1)在SSIS中以32位运行程序包

尝试以32位模式运行程序包:

GoTo Project properties >> Debugging >> Run64BitRuntime  = False

enter image description here

(2)同时安装32位和64位AccessDatabaseEngine

假设您用“可再分发”的意思表示Access数据库引擎

如果需要与32位安装一起安装AccessDataBaseEngine x64,则需要以被动模式运行安装:

被动模式安装步骤

  1. 通过在“开始”菜单下的Windows搜索框中键入cmd并选择cmd.exe来打开命令提示符
  2. 键入64位Access Database Engine 2010安装文件的文件路径和文件名,后跟一个空格和/passive(这将运行安装而不显示任何错误消息)。
  3. 通过在“开始”菜单下的Windows搜索框中键入regedit并选择regedit.exe来打开注册表编辑器
  4. 删除或重命名以下注册表项中的mso.dll注册表值:

    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" 
    

更多详细信息和屏幕截图,请参见下面的链接

参考

答案 1 :(得分:0)

通过使用dtexec 32位实用程序在32位模式下运行sis,可以将两者保持为32位。

DTExec 32位位于:

C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn

DTExec 64位位于:

C:\Program Files\Microsoft SQL Server\90\DTS\Binn

参考此内容以了解如何运行

答案 2 :(得分:0)

由于我遇到了同样的错误代码的问题-

创建连接管理器时,也可能选择了错误的excel版本,即Excel 2007-2010与Excel 2016等

答案 3 :(得分:0)

1.点击项目>>属性>>调试:将Run64BitRuntime改为false。

2.如果这不起作用,请使用 Excel 97-2003 工作簿格式保存您的 excel 工作,SSIS 中的 excel 连接管理器也应如此。

3.还尝试在工作簿打开时读取数据

答案 4 :(得分:0)

如果你喜欢新格式的Excel(xlsx)——2007版等等,你可以安装Access。结合以 32 位模式运行包有望解决问题。

https://www.microsoft.com/en-us/download/details.aspx?id=54920