如何从每次具有不同文件名的excel源文件将数据导入SSIS中的sql server表(示例excel文件名:abc123,123abc,ab123c等)
小智 18
实现此目的的一种可能方法是ForEach Loop container在Control Flow选项卡中使用,然后Data Flow task在控制流任务中放置一个.我在下面的例子中解释了这个过程.此示例使用SQL Server后端作为目标,并将Excel 97-2003格式.xls用作源文件.请注意,Excel文件格式应相同.
一步一步的过程:
创建一个名为dbo.Location屏幕截图#1所示的表.此示例将通过读取具有相同布局的三个不同Excel文件来填充此表.屏幕截图显示了包执行之前的空表.
在路径中创建两个Excel文件,c:\temp\如屏幕截图#2 - #4所示.请注意,两个Excel文件具有相同的布局但内容不同.
在SSIS包上,创建三个变量,如屏幕截图#5所示.变量FolderPath将包含Excel文件所在的路径; FileExtension将包含Excel文件扩展名(在这种情况下为*.xls),并且FilePath应配置为指向一个有效的Excel文件(仅在初始配置Excel连接管理器时才需要).
Excel connection在连接管理器中创建一个指向一个有效Excel文件的连接管理器,如屏幕截图#6所示.
OLE DB Connection在指向SQL Server 的连接管理器中创建一个.
在SSIS包上,在ForEach循环容器中放置ForEach循环容器和数据流任务,如屏幕截图#7所示.
配置ForEach循环容器,如屏幕截图#8和#9所示.通过执行此操作,变量User::FilePath将包含位于文件夹中的完整路径Excel文件c:\temp\,并借助变量FolderPath并FileExtension在该Collection部分上进行配置.
在数据流任务中,放置一个Excel source读取Excel文件数据,并将O LE DB destination插入到SQL Server表dbo.Location中.数据流任务应如截图#10所示.
配置Excel源,如屏幕截图#11和#12所示,使用Excel连接读取数据.
配置OLE DB目标,如屏幕截图#13和#14所示,将数据插入SQL Server数据库表.
在连接管理器中的Excel连接上,配置表达式ExcelFilePath,ServerName如屏幕截图#15所示.
截屏#16显示了数据流任务的示例执行.
屏幕截图#17显示包执行后表dbo.Location中的数据.请注意,它包含屏幕截图#3和#4中显示的Excel文件中的所有行.
在Data Flow task属性上,将"设置"设置DelayValidation为" True",以便在打开包时SSIS不会抛出错误.
希望有所帮助.
截图#1:

截图#2:

截图#3:

截图#4:

截图#5:

截图#6:

截图#7:

截图#8:

截图#9:

截图#10:

截图#11:

截图#12:

截图#13:

截图#14:

截图#15:

截图#16:

截图#17:

截图#18:
