[英]Dynamic Excel Sheets load into SQL using SSIS
I'm trying to load multiple excel format files (.xlsx) into sql. 我正在尝试将多个Excel格式文件(.xlsx)加载到sql中。 I have set up my package as followed.
我已经按照以下步骤设置了我的包裹。 My excel files name and sheet name will change daily
我的Excel文件名称和工作表名称每天都会更改
File name: PROD File Tracking 02-10.xlsx - Month and Day change daily
Sheet name: 2-10$ -- month and day change daily
Package Structure 包装结构
For each Loop Container -> Data Flow Task -> Excel Source -> OLE DB Destination
Variables Values 变量值
Z:\\Users\\darsftp\\BDS\\GBRTest\\PROD File Tracking 02-10.xlsx
Z:\\Users\\darsftp\\BDS\\GBRTest\\PROD File Tracking 02-10.xlsx
Z:\\Users\\darsftp\\BDS\\GBRTest
Z:\\Users\\darsftp\\BDS\\GBRTest
"Excel 12.0;HDR=Yes"
"Excel 12.0;HDR=Yes"
Need Help 需要帮忙
To dynamically pick up file daily with a dynamic sheet name. 每天使用动态工作表名称动态获取文件。
I know how to pick up files with a dynamic file name but not with a dynamic sheet name. 我知道如何使用动态文件名而不是动态工作表名来拾取文件。 That's where I'm having the issue.
那就是我遇到的问题。
Create a new variable Sheetname
and Set it's property Evaluate as expression
to True
and use the following expression: 创建一个新变量
Sheetname
并将其属性设置为Evaluate as expression
为True
并使用以下表达式:
REPLACE(SUBSTRING(@[User::Filename],FINDSTRING(@[User::Filename],"PROD File Tracking", 1 ) + LEN("PROD File Tracking"),100),".xlsx","") + "$"
So if your Filename
variable value its Z:\\Users\\darsftp\\BDS\\GBRTest\\PROD File Tracking 02-10.xlsx
so Sheetname
variable value will be 02-10$
wich is the sheetname. 因此,如果您的
Filename
变量值是Z:\\Users\\darsftp\\BDS\\GBRTest\\PROD File Tracking 02-10.xlsx
那么Sheetname
变量值将为02-10$
这是工作表名称。
And in your Excel Source read the sheetname from variable Sheetname
并在您的Excel Source中从变量
Sheetname
读取工作表Sheetname
Side note: Excel sheetname always end with $
sign (it doesn't appear in excel) 旁注:Excel工作表名称始终以
$
符号结尾(在Excel中不显示)
Read more about variable and expressions in this article 在本文中阅读有关变量和表达式的更多信息
EDIT 1 编辑1
You have to add an expression the the Excel connection manager
connection string property: 您必须在
Excel connection manager
连接字符串属性中添加一个表达式:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ @[User::Filename] + ";Extended Properties=\"Excel 12.0;HDR=YES\";"
Set DelayValidation
property of Data Flow task to True. 将数据流任务的
DelayValidation
属性设置为True。
Usefull Links 有用的链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.