VS2022中SSIS无法连接Excel数据源,请求解决方案
SSIS连接32位Excel数据源失败的解决建议
环境信息
- Visual Studio Professional 2022
- 32位Microsoft Excel 365(版本2301 内部版本16.0.16026.20214)
- 64位Windows操作系统
错误信息
TITLE: Microsoft Visual Studio
Could not retrieve the table information for the connection manager 'Excel Connection Manager'.
Failed to connect to the source using the connection manager 'Excel Connection Manager'BUTTONS: OK
已尝试的无效操作
- 安装32位Microsoft Access Database Engine 2010/2016 Redistributable(含静默参数)
- 修改连接字符串Provider为
Microsoft.ACE.OLEDB.12.0 - 将Excel另存为97-2003(.xls)及.xlsx格式
- 设置DelayValidation为TRUE
- 项目调试配置中设置Run64BitRuntime = False
- 安装SSAS
额外可行建议
彻底清理并重装ACE驱动
- 先卸载所有已安装的ACE驱动(32/64位版本),在控制面板的「程序和功能」中找到对应条目删除
- 重启电脑后,以管理员身份打开命令提示符,执行32位ACE驱动的静默安装命令:
AccessDatabaseEngine.exe /quiet(确保下载的是对应32位安装包) - 安装完成后再次重启电脑
确保Visual Studio运行位数与驱动匹配
- 右键Visual Studio快捷方式,进入「属性」-「兼容性」,勾选「以管理员身份运行此程序」
- 打开Visual Studio后,依次进入「工具」->「选项」->「项目和解决方案」->「SSIS」,确认「默认64位运行时」设置为False
手动配置连接字符串的扩展属性
编辑Excel连接管理器的连接字符串,针对不同格式补充正确参数:- .xls格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourPath\File.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1;" - .xlsx格式:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourPath\File.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;"
其中HDR=YES表示第一行是表头,IMEX=1强制混合数据类型按文本读取,避免格式冲突
- .xls格式:
释放Excel文件占用
打开任务管理器,结束所有EXCEL.EXE进程,避免文件被占用导致连接失败验证ACE驱动有效性
编写简单控制台程序测试驱动是否正常工作:using System.Data.OleDb; class Program { static void Main() { string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourPath\File.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES;"""; using (OleDbConnection conn = new OleDbConnection(connectionString)) { try { conn.Open(); Console.WriteLine("连接成功"); OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn); OleDbDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader[0].ToString()); } } catch (Exception ex) { Console.WriteLine("连接失败:" + ex.Message); } } } }如果程序能正常运行,说明驱动本身没问题,问题出在SSIS配置环节
修复Visual Studio安装
打开Visual Studio Installer,选择「修改」->「修复」,修复SSIS相关组件,避免组件损坏导致连接异常
内容的提问来源于stack exchange,提问作者Bich Le The
相关产品推荐
相关产品推荐

