图解SSIS批量导入Excel文件的实现方法

将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程. 1、建立测试excel文件,假设有a b c d四个字段,保存在f:/excel目录

                        将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.1、建立测试excel文件,假设有a b c d四个字段,保存在f:/excel目录下<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355U416-0.jpg"> 并复制很多个一样的文件<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355VN7-1.jpg">2、打开Microsoft Visual Studio 2005或者随sql2005安装的SQL Server Business Intelligence Development Studio,新建一个商业智能项目。<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355V040-2.jpg">3、工具箱拖一个Foreach循环容器<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355V425-3.jpg">4、编辑容器,设定遍历目录和其他参数<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355T356-4.jpg">5、新建一个映射变量,用来存储遍历当中的文件路径<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355Sc3-5.jpg">6、怎么存储不用你关心,你只要指定一个变量名就ok了<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355W614-6.jpg">7、确定后,容器生成完毕,接着拖一个数据流任务到容器中<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355W543-7.jpg">8、切换到数据流tab页,拖一个excel源<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355TJ8-8.jpg">9、编辑excel源,选择一个刚刚的任意excel<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355T4W-9.jpg">10、选择一个sheet<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355W518-10.jpg">11、拖一个ole db目标到数据流中<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355T022-11.jpg">12、按住excel源的绿色箭头,拖动到oledb目标上<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355Q633-12.jpg">13、编辑oledb目标,选择一个sqlserver数据表,这个表必须是已经存在的,这里我们建立一个ssistest数据库,生成一个和excel结构一样的表ttcreate table tt(a varchar(100),b varchar(100),c varchar(100),d varchar(100))然后用oledb去连接<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355UI4-13.jpg">14、编辑字段映射关系,结构一样,它会自动找到<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355T037-14.jpg">15、编辑下面的excel链接管理器,这里将用到foreach的变量来代替刚刚选择的那个excel文件<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355S234-15.jpg">16、连接管理器的属性中设置变量的映射用法<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355R207-16.jpg">17、expressions的属性编辑列表中,左边选择 excelfilepath,这个是连接管理器的属性,我们将用变量来代替<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355T049-17.jpg">18、再点击表达式的属性编辑按钮,把列表中的变量用户::xlspath变量拖到下面的表达式框中<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355W2B-18.jpg">19、这时ssis将会报错,并给出警告<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355VS7-19.jpg">20、上图中黄颜色的区域,右键-属性,打开控制流的属性窗口,设置DelayValidation为True就可以了。<img alt src="http://img.558idc.com/uploadfile/allimg/210405/11355R349-20.jpg">经过以上20步的配置,整个过程就结束了,你可以按下F5看看效果,文件夹下所有的excel将被批量导入数据库。另外可以通过sqlserver的作业来调用ssis的包实现定期自动把目录下的excel导入数据库。