首页 > 其他 > 详细

SSIS 导入多个Excel 数据

时间:2014-02-12 19:47:34      阅读:681      评论:0      收藏:0      [点我收藏+]

http://blog.csdn.net/jinjazz/article/details/2710169

 

http://blog.csdn.net/jinjazz/article/details/2722987

 

 

 

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

1、建立测试excel文件,假设有a b c d四个字段,保存在f:/excel目录下
bubuko.com,布布扣
并复制很多个一样的文件
bubuko.com,布布扣
2、打开Microsoft Visual Studio 2005或者随sql2005安装的SQL Server Business Intelligence Development Studio,新建一个商业智能项目。
bubuko.com,布布扣
3、工具箱拖一个Foreach循环容器
bubuko.com,布布扣
4、编辑容器,设定遍历目录和其他参数
bubuko.com,布布扣
5、新建一个映射变量,用来存储遍历当中的文件路径
bubuko.com,布布扣
6、怎么存储不用你关心,你只要指定一个变量名就ok了
bubuko.com,布布扣
7、确定后,容器生成完毕,接着拖一个数据流任务到容器中
bubuko.com,布布扣

8、切换到数据流tab页,拖一个excel源
bubuko.com,布布扣
9、编辑excel源,选择一个刚刚的任意excel
bubuko.com,布布扣
10、选择一个sheet
bubuko.com,布布扣
11、拖一个ole db目标到数据流中
bubuko.com,布布扣
12、按住excel源的绿色箭头,拖动到oledb目标上
bubuko.com,布布扣
13、编辑oledb目标,选择一个sqlserver数据表,这个表必须是已经存在的,这里我们建立一个ssistest数据库,生成一个和excel结构一样的表tt
create table tt(a varchar(100),b varchar(100),c varchar(100),d varchar(100))
然后用oledb去连接
bubuko.com,布布扣

14、编辑字段映射关系,结构一样,它会自动找到
bubuko.com,布布扣
15、编辑下面的excel链接管理器,这里将用到foreach的变量来代替刚刚选择的那个excel文件
bubuko.com,布布扣
16、连接管理器的属性中设置变量的映射用法
bubuko.com,布布扣
17、expressions的属性编辑列表中,左边选择 excelfilepath,这个是连接管理器的属性,我们将用变量来代替
bubuko.com,布布扣
18、再点击表达式的属性编辑按钮,把列表中的变量用户::xlspath变量拖到下面的表达式框中
bubuko.com,布布扣
19、这时ssis将会报错,并给出警告
bubuko.com,布布扣
20、上图中黄颜色的区域,右键-属性,打开控制流的属性窗口,设置DelayValidation为True就可以了。
bubuko.com,布布扣

经过以上20步的配置,整个过程就结束了,你可以按下F5看看效果,文件夹下所有的excel将被批量导入数据库。另外可以通过sqlserver的作业来调用ssis的包实现定期自动把目录下的excel导入数据库。

 

 

将一个excel文件中的所有相同结构的工作表导入到sql2005的同一张表中。下面用大量图片完全说明整个过程.
1、测试环境为一张excel中的三个sheet
bubuko.com,布布扣

2、打开Microsoft Visual Studio 2005或者随sql2005安装的SQL Server Business Intelligence  Development Studio,新建一个商业智能项目。
bubuko.com,布布扣

3、连接管理器中新建一个ADO.Net连接
bubuko.com,布布扣

4、新建连接
bubuko.com,布布扣
5、选择jet Ole Db数据源
bubuko.com,布布扣

6、选择一个excel文件,他默认是mdb的,你需要显示所有文件(*.*)才能选择Excel
bubuko.com,布布扣
7、选择全部-红色标记的地方选择excel5.0
bubuko.com,布布扣

这样用来遍历excel架构的链接就建立好了

8、新建一个循环容器
bubuko.com,布布扣

9、循环编辑器配置如下
bubuko.com,布布扣

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

bubuko.com,布布扣

11、变量如图
bubuko.com,布布扣

bubuko.com,布布扣

循环容器就ok了

12、容器中添加数据流任务
bubuko.com,布布扣

13、设置excel源
bubuko.com,布布扣

14、设置Excel连接和工作表
bubuko.com,布布扣

15、设置oledb目标
bubuko.com,布布扣

16、绿色箭头连起来
bubuko.com,布布扣

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

18、编辑映射,关系,默认的就可以了
bubuko.com,布布扣

19、最后需要将刚刚选定的excel源用循环变量来代替,在高级设置中(我也找了好久)
bubuko.com,布布扣

20、配置如下
bubuko.com,布布扣

21、完成,可以按下调试按钮,来启动任务测试
bubuko.com,布布扣


同理你可以设置目标的高级,来导入sheet不同结构的表格,并且可以结合我的前面一片文章,批量导入文件夹下所有excel文件来完成批量导入所有excel的所有sheet。

SSIS 导入多个Excel 数据

原文:http://www.cnblogs.com/ifreesoft/p/3545703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!