SSIS 包配置

问题描述

如何使用 SSIS 加载多个 Excel 文件。过去我有过包,我在文件夹中循环多个文本文件并将它们加载到 sql 服务器表中。

解决方法

创建一个名为FileName的变量,设置范围为ImportMultipleExcelFiles,数据类型为String

在控制流任务中添加一个 Foreach 循环容器。

编辑 Foreach Loop Container,在 Collection 部分将 Enumerator 值更改为 Foreach File Enumerator

您需要更改 Enumerator 配置,如下所示:

  • Folder:提供一个完整的文件夹路径位置,我们所有的 Excel 存储源文件。
  • Files:您需要从我们的源文件夹中读取 Excel 文件,因此 在文件部分输入 *.xls,这将确保我们的 SSIS package 将从源文件夹中读取所有可用的 .xls 文件。 这里 * 表示 Excel 文件名可以是任何,但文件名 扩展名为 .xls。如果我们需要从特定的 Excel 中读取数据 文件名,然后我们必须相应地配置它。
  • Retrieve File Name:选择完全限定单选按钮。

然后,为 Foreach Loop 容器创建变量映射,选择“User::FileName”变量并将变量映射部分中的索引值设置为 0。

Data Flow Task 中添加一个 Foreach Loop Container。 右键单击最近添加的数据流任务,然后单击属性并将 DelayValidation 属性标记为 True

Data Flow Task 中添加 Excel 源并创建与任何 Excel 源文件的新连接。

您必须使 Excel 连接动态化,以便它可以连接到源文件夹中的每个 Excel 文件。要使 Excel 源连接动态化,请右键单击 Excel 源连接,然后单击属性。

展开表达式属性,然后选择连接字符串属性,然后在表达式窗口中单击表达式图标:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+@[User::FileName]+";Extended Properties=\"Excel 8.0;HDR=YES\";"

最后,执行 SSIS 包并查看结果。