0

我有 86 个国家/地区,每个国家/地区在 CountryFolder 中都有一个文件夹:例如

C:\Users\Countries\Algeria

在每个国家/地区文件夹中都有该国家/地区语言的 Excel 表:

C:\Users\Countries\Algeria\Excel Sheet.xlsx

我有一个 ForEach 循环包,它遍历所有从 Excel 表格中提取数据的国家。这些工作表都采用相同的格式,但使用不同的语言。我的 SSIS 包遍历所有将工作表加载到数据库的英语国家/地区,但在到达西班牙语和其他非英语国家/地区时会引发错误,因为它使用列名进行映射。表列名称为英文,因此它们与非英语国家的 Excel 列名称不匹配

4

1 回答 1

0

我假设您有一个ForEach循环来迭代folder.InsideForEach 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 :@ForEachVariableForEach包含由Loop存储在变量中的文件位置

//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将现有的数据流任务

于 2013-04-15T11:59:49.890 回答