Step3  批量Excel数据源导入数据库    

     本节核心就是:就是通过设定Foreach循环容器的映射变量,来遍历Excel目录的所有文件,并将其数据导入目标数据源中。
     图解SSIS批量导入Excel文件、配置数据加数据查看器


一、 批量导出Excel表
将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.

1. 建立测试excel文件,假设有a b c d四个字段,保存在f:\excel目录下
并复制很多个一样的文件.
  

以此类推
 


2. 新建一个包Pageage2.dtsx
 

 

3. 工具箱拖一个Foreach循环容器
 

 

4. 编辑容器,设定遍历目录和其他参数
 


5. 新建一个映射变量,用来存储遍历当中的文件路径
 

 

6. 怎么存储不用你关心,你只要指定一个变量名就ok了
 

 

7. 确定后,容器生成完毕,接着拖一个数据流任务到容器中
 

 

8. 切换到数据流tab页,拖一个excel源
 


9. 编辑excel源,选择一个刚刚的任意excel
 

 

10. 选择一个sheet
 

 

11. 拖一个ole db目标到数据流中
 

 

12. 按住excel源的绿色箭头,拖动到oledb目标上


 
13. 编辑oledb目标,选择一个sqlserver数据表,这个表必须是已经存在的,这里我们建立一个ssistest数据库,生成一个和excel结构一样的表tt
create table tt(a varchar(100),b varchar(100),c varchar(100),d varchar(100))
然后用oledb去连接
 

 

14. 编辑字段映射关系,结构一样,它会自动找到
 


15. 编辑下面的excel链接管理器,这里将用到foreach的变量来代替刚刚选择的那个excel文件
 

 

16. 连接管理器的属性中设置变量的映射用法
 

 
17. expressions的属性编辑列表中,左边选择 excelfilepath,这个是连接管理器的属性,我们将用变量来代替
 

 

18. 再点击表达式的属性编辑按钮,把列表中的变量用户::xlspath变量拖到下面的表达式框中
 


19. 这时ssis将会报错,并给出警告
 

20. 到控制流界面中,对数据流任务,右键-属性,打开控制流的属性窗口,设置DelayValidation为True就可以了。
 

 

运行:
经过以上20步的配置,整个过程就结束了,你执行包看看效果,文件夹下所有的excel将被批量导入数据库。另外可以通过sqlserver的作业来调用ssis的包实现定期自动把目录下的excel导入数据库。
 
如果你细心的话,会看到该数据流一共执行了4次。
 


二、 配置数据查看器


此处,你也可以通过添加数据查看器进行查看执行过程中的数据,这样可以很方便的进行SSIS包的简单的调试.右击Excel源和OLD DB目标表中间的绿色,点击数据查看器,然后点击添加,再选择网络,其它全部默认,确定.

 

再次运行包,你会发现所有的组件都是黄包,这代表正在执行,在弹出来的数据查看器中可以看到所有的数据流的2行数据,点击上面的绿色按钮可以继续运行.通过数据查看器我们可以查看正在数据流中传输的数据.
数据查看器是在流入数据组件前就能截获数据,它就像一个阀门。
 

项目step1---4源代码文件:版本为SQL 2005,运行代码前还需要安装ExceL应用程序

/Files/cocole/Step1-4Sql05.rar

 

作者:悟空的天空(天马行空)
出处:http://www.cnblogs.com/cocole/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

作者: 悟空 发表于 2011-05-30 16:00 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"