在不知道文件名的情况下使用 SSIS 从 Excel 导入数据

Import data from Excel using SSIS without knowing the file name

我正在开发一个 SSIS 包,它将用于将数据从 Excel 文件导入到 SQL 服务器。我目前的努力是弄清楚如何在事先不知道文件名称的情况下使 SSIS 包恰好引入一个 excel 文件。我有一个目录将同时包含 0n excel 个文件。我只想拉入创建时间最早的文件。这可能吗?

我正在使用 Visual Studio 2015 构建 SSIS 包。我的数据库在 SQL Server 2016 中。

创建动态文件连接:

  1. 创建一个数据类型为字符串的新变量(名称示例:'SourceFile')。

  2. 在 'For Each Loop Container' 中将该变量映射到 'Variable Mapping' 选项卡下,并将 'Enumerator Configuration' 设置为正确的文件夹和文件扩展名。 'For Each Loop Container'将从该位置读取文件并将文件的名称分配给变量。

  3. 在文件连接的表达式属性中,将 ConnectionString 属性 设置为 @[User::SourceFile]

这应该使您的文件源动态化。无论文件的名称是什么,它都会选取文件,但文件的格式必须保持一致。

仅使用 SSIS 任务,我不知道如何利用文件的创建日期来选择最旧的文件,但是如果文件名包含文件的创建日期,您可以将日期从 @ 中提取出来[User::SourceFile] 变量并将其存储在另一个变量中,每次执行 'For Each Loop Container' 以确定哪个文件最旧。