使用SSIS以不同语言加载Excel文件
问题描述:
我有86个国家,每个文件夹都有一个放在CountryFolder中的文件夹:使用SSIS以不同语言加载Excel文件
C:\Users\Countries\Algeria
而且在每个国家文件夹中有一个Excel工作表在该国的语言:
C:\Users\Countries\Algeria\Excel Sheet.xlsx
我有一个foreach循环软件包,通过所有的国家迭代提取从Excel工作表数据。这些表格全部采用相同的格式,但使用不同的语言。 我的SSIS包通过所有英文国家/地区将表单加载到数据库,但在到达西班牙语和其他非英语国家时会引发错误,因为它使用列名进行映射。表列名是英语,所以它们不匹配的非英语国家的Excel列名
答
我假设你有一个ForEach
循环迭代的folder
.Inside ForEach Loop
使用FileSystem
任务到特定的文件复制到不同的位置。然后用Script task
的帮助下阅读原始Excel文件并更改列heders英文名称,使得具有不同的Data Flow Task
适用于所有的过人之处langauages
ConnString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;
Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";"
,@ForEachVariable);
Note :@ForEachVariable
包含存储在一个变量文件位置ForEach
环
//open the connection
OleDbCommand query =
new OleDbCommand("SELECT * FROM ["xlWorksheet"$]", objConn);
//popluate the Datetable and get the column names using
dt.Columns[0].ColumnName
一旦你得到了列名更改为您的英文名在Excel中,然后再处理使用DFT
包装设计文件: -
在这方式你可以reuse
你现有的数据流任务