SSIS Excel的多Sheets导入数据库
标签:
ssis杂谈 |
分类: 技术讨论区-BI |
首先,非常感谢Pedro Perfeito的分享:
www.biresort.net/blogs/pedrocgd
Excel导入数据库在ETL中,经常会遇到。这次要完成的是从一个Excel里多个相同结构Sheets导入。
http://filer.blogbus.com/5213599/5213599_12986230227.jpgExcel的多Sheets导入数据库" />如我需要导入16个Sheets的数据。
这里,我们其实需要分两步操作:
1.获取Excel文件里所有Sheets的名称。
2.利用Foreach Loop Container组件,循环获取每个Sheet的名称,并作为Excel读数据的来源。
所以Package包的工作流程按以下图所示:
http://filer.blogbus.com/5213599/5213599_1298625271a.jpgExcel的多Sheets导入数据库" />另外,我们需要两个参数,用来保存Sheets列表与每个Sheet的名称
http://filer.blogbus.com/5213599/5213599_12986252794.jpgExcel的多Sheets导入数据库" />
至此,准备工作已经完成了。接下来,让我们具体细化操作吧。
1.添加一个Data Flow Task,命名为“DFT Get worksheet names”,然后打开它。
http://filer.blogbus.com/5213599/5213599_1298624293w.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_1298624301z.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_12986253099.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_12986253172.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_1298625324x.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_1298625332m.jpgExcel的多Sheets导入数据库" />
2.添加Foreach Loop Container,命名为“FELC Foreach Worksheet”。
http://filer.blogbus.com/5213599/5213599_1298625339h.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_1298625355o.jpgExcel的多Sheets导入数据库" />
3.添加一个Data Flow Task,命名为“DFT Extract data form Excel”。读取每个Sheet的数据
http://filer.blogbus.com/5213599/5213599_1298624363o.jpgExcel的多Sheets导入数据库" />
http://filer.blogbus.com/5213599/5213599_1298625339h.jpgExcel的多Sheets导入数据库" />
另外,因为我们将每个Sheet名存放在“uvWorkSheet”中,所以,我们其实也可以获取它的值,并在脚本中使用,如:
http://filer.blogbus.com/5213599/5213599_1298625376x.jpgExcel的多Sheets导入数据库" />
这里,还有分参考资料是关于Excel的几个操作。
http://technet.microsoft.com/en-us/library/ms403358.aspx

加载中…