微软BI实战七:SSIS之Foreach循环容器批量导入销售订单Excel工作表

今天我们一起来了解循环任务中的一种:文件循环。项目背景:excel文件中的所有相同结构的工作表导入到sql数据库中的同一张表,这些文件众多,所以期望能够把文件统一的放在一个或者几个文件夹中一起执行。这种需求,文件循环任务就派上用场了。如下图,容器下有两种循环,我们今天学习使用Foreach循环容器导入数据,For循环容器其实原理也类似这里就不多讲。

1、新建测试环境

新建Excel文件,在Excel中新建3个sheet文件,分别放2011年订单数据,2012年订单数据,2013年订单数据

2、打开Microsoft Visual Studio 2019或者随sql2016安装的SQL Server Business Intelligence Development Studio,新建一个商业智能项目。

配置项目名称

3、连接管理器中新建ADO.NET连接

4、新建连接

5、选择Microsoft JET4.0 OLE DB Provider数据源

6、选择我们新建的EXCEL文件

7、选择全部,红色部分填写Excel 5.0。这样用来遍历EXCEL文件的链接就建立好了

8、新建一个循环容器

9、循环编辑器配置如下

10、新建变量映射,用来保存遍历到表名

11、变量如图,按照下图的配置好后,循环容器就处理完成

12、容器中添加数据流任务

13、设置Excel数据源

14、设置Excel链接和工作表

15、设置OLEDB目标

16、连接任务

17、细心的小伙伴应该已经看到错误列表中的信息,我们现在需要编辑oledb目标,选择一个数据表,这个表必须是已经存在的,这里我们建立一个XLZDATA数据库,生成一个和excel结构一样的表SSISDATA然后用oledb去连接

CREATE TABLE [SSISDATA] (

   [订单ID] nvarchar(255),

   [订单日期] datetime,

   [发货日期] datetime,

   [邮寄方式] nvarchar(255),

   [客户ID] nvarchar(255),

   [城市] nvarchar(255),

   [产品ID] nvarchar(255),

   [销售额] float,

   [数量] float,

   [折扣] float,

   [利润] float

)

18、编辑映射,关系,默认的就可以了

19、最后需要将刚刚选定的excel源用循环变量来代替,在高级设置中

20、具体配置如下

21、完成,可以按下调试按钮,来启动任务测试

22、看一下Excel中sheet文件合并后抽取到数据库的效果:

同理你可以设置目标的高级,来导入sheet不同结构的表格,批量导入文件夹下所有excel文件来完成批量导入所有excel的所有sheet。公众号:小黎子数据分析  回复【20210601】获取本文案例

你可能感兴趣的:(微软BI实战七:SSIS之Foreach循环容器批量导入销售订单Excel工作表)