使用不同名称的 SSIS 加载 Excel 文件获取错误 0x80004005

问题描述

我有一个 SSIS 包,可以查看每个文件末尾带有日期的 excel 文件。我看了很多视频,但找不到答案。如果我移动与连接管理器一起使用的“原始文件”(请参阅​​屏幕截图的链接),则包无法完成并显示错误:ForEach 枚举器的 GetEnumerator 方法失败,错误为 0x80004005“未指定错误”。这发生在ForEach 枚举器无法枚举。”如果我然后将文件放回正确的位置,它会再次工作。我的问题是我必须永远把文件放在那里吗?有没有办法做到这一点,它不寻找该文件是否存在?

Connection Manager

Connection Manager

解决方法

您正在使用静态文件名。如果您可以使用静态文件名,那么您将不得不让其他一些进程定期更新该文件。但是,如果您希望在进程循环多个文件时更加动态,那么在 ForEachLoop Enumerator 中,您只需设置以下设置:

注意:使用 *.xlsx 是获取扩展名为 xlsx 的任何文件的方法。

enter image description here

然后将文件路径映射到变量:

enter image description here

然后将连接管理器的 ConnectionString 属性设置为文件路径:

enter image description here