如何创建一个 SSIS 包,该包循环使用名称中包含特定关键字的 excel 文件?
Posted
技术标签:
【中文标题】如何创建一个 SSIS 包,该包循环使用名称中包含特定关键字的 excel 文件?【英文标题】:How can I create an SSIS package which loops through excel files with a specific keyword in their name? 【发布时间】:2019-06-03 18:48:24 【问题描述】:我正在创建一个 SSIS 包,它需要选择性地循环遍历文件夹中名称中包含特定关键字的 excel 文件(关键字可以出现在名称中的任何位置)。此文件夹将包含多个不包含此关键字的文件。
奖励:然后我需要使用相同的文件名在 SSIS 中创建一个日期变量(文件名将包含在其中创建日期所需的组件)。到目前为止我的努力都失败了,任何帮助将不胜感激!
【问题讨论】:
对于任何偶然发现此问题并希望解决额外问题的人,我最终使用我的 foreach 循环创建的文件名变量来解决它。然后将该变量与当前年份一起传递给脚本任务(由 Year(getdate()) 动态设置)。我使用 C# string.contains 函数来检查文件名字符串包含的日期并将其写入变量。以下是 C# 脚本的图片,供参考。 i.gyazo.com/196fe4d2756551265e058a00d1c3f960.png 【参考方案1】:创建一个 Foreach 文件循环枚举器。在 FileSpec 中,使用通配符,例如:
*SearchString*.csv
或 *SearchString*.xslx
您可能需要选择文件名和扩展名单选按钮。将其映射到 SSIS 包变量。
另外,您可以使用基于映射变量的表达式创建另一个包变量,并执行您需要的任何字符串解析,以便从文件名中提取信息。
【讨论】:
您是否有指导开始设置的建议?我对 Foreach 文件循环枚举器不是很熟悉。 @CameronDavis 看看这个,如果您有任何问题,请告诉我。 codeproject.com/Tips/803195/Foreach-File-Enumerator-in-SSIS-2 好答案。我发现完整文件路径最有用,因此您可以映射到文件路径的文件路径表达式 我一直在解决这个问题,我似乎在文件夹中的文件中创建了一个循环,但是尽管我的文件名变量更改了数据来自同一个文件。 好的,对我上一条评论的回复结果证明这是我在 excel (Cozyroc Excel Plus) 中使用的插件的问题。我将返回任何进一步的更新以上是关于如何创建一个 SSIS 包,该包循环使用名称中包含特定关键字的 excel 文件?的主要内容,如果未能解决你的问题,请参考以下文章