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目录下
SSIS 导入多个Excel 数据
并复制很多个一样的文件
SSIS 导入多个Excel 数据
2、打开Microsoft Visual Studio 2005或者随sql2005安装的SQL Server Business Intelligence Development Studio,新建一个商业智能项目。
SSIS 导入多个Excel 数据
3、工具箱拖一个Foreach循环容器
SSIS 导入多个Excel 数据
4、编辑容器,设定遍历目录和其他参数
SSIS 导入多个Excel 数据
5、新建一个映射变量,用来存储遍历当中的文件路径
SSIS 导入多个Excel 数据
6、怎么存储不用你关心,你只要指定一个变量名就ok了
SSIS 导入多个Excel 数据
7、确定后,容器生成完毕,接着拖一个数据流任务到容器中
SSIS 导入多个Excel 数据

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

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

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

 

 

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

2、打开Microsoft Visual Studio 2005或者随sql2005安装的SQL Server Business Intelligence  Development Studio,新建一个商业智能项目。
SSIS 导入多个Excel 数据

3、连接管理器中新建一个ADO.Net连接
SSIS 导入多个Excel 数据

4、新建连接
SSIS 导入多个Excel 数据
5、选择jet Ole Db数据源
SSIS 导入多个Excel 数据

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

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

8、新建一个循环容器
SSIS 导入多个Excel 数据

9、循环编辑器配置如下
SSIS 导入多个Excel 数据

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

SSIS 导入多个Excel 数据

11、变量如图
SSIS 导入多个Excel 数据

SSIS 导入多个Excel 数据

循环容器就ok了

12、容器中添加数据流任务
SSIS 导入多个Excel 数据

13、设置excel源
SSIS 导入多个Excel 数据

14、设置Excel连接和工作表
SSIS 导入多个Excel 数据

15、设置oledb目标
SSIS 导入多个Excel 数据

16、绿色箭头连起来
SSIS 导入多个Excel 数据

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

18、编辑映射,关系,默认的就可以了
SSIS 导入多个Excel 数据

19、最后需要将刚刚选定的excel源用循环变量来代替,在高级设置中(我也找了好久)
SSIS 导入多个Excel 数据

20、配置如下
SSIS 导入多个Excel 数据

21、完成,可以按下调试按钮,来启动任务测试
SSIS 导入多个Excel 数据


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

相关文章: