資料夾 F:\ExcelImports\ 每日產生多個同結構 Excel 檔 (Product1.xls, Product2.xls...),需自動化批量匯入 SQL Server 目標表 dbo.Product,並對資料行進行衍生轉換。
Foreach 循環容器** 遍歷列舉器成員,對每個成員重複執行內部控制流。支援列舉器類型:
*.xls、正則)。
圖 1:Foreach 循環容器編輯器 - 集合頁籤
Product.xls → Product1.xls。Product2.xls,複製 Product1.xls 中 ProductID < 800 的列,**工作表名稱必須一致** (如 Sheet1$)。F:\ExcelImports\。ForeachInput.dtsx。F:\ExcelImports\*.xlsUser::CurrentFilePath (String) → 索引 0。

圖 2:變數對應設定
OutputAndInput.dtsx。ForeachInput.dtsx,在 Foreach 容器**內部**貼上 (Ctrl+V)。
圖 3:屬性運算式編輯器入口
@[User::CurrentFilePath]。

圖 4:動態繫結檔案路徑運算式
ProductNumber、Name 衍生邏輯由 +1 改為 +2,以區別匯入批次。

圖 5:衍生欄位調整
dbo.Product,確認匯入 2 批資料,衍生欄位值正確 (+1 批次、+2 批次)。
圖 6:成功執行結果

圖 7:資料檢視器介面

圖 8:即時資料預覽
| 技術點 | 關鍵設定 | 作用 |
|---|---|---|
| Foreach File Enumerator | 資料夾 + *.xls + 完整路徑 | 自動發現新增檔案,無需修改封裝 | 變數對應 | User::CurrentFilePath (String, Index 0) | 將每次迴圈檔案路徑傳遞給資料流 |
| 連接管理器運算式 | ExcelFilePath = @[User::CurrentFilePath] | 動態切換 Excel 來源檔案 |
| DelayValidation | True | 設計階段不驗證檔案存在性,避免誤報錯誤 |
| 資料檢視器 | 路徑右鍵啟用 | 即時除錯資料流內容,驗證轉換邏輯 |
Archive\ 並重命名加時間戳記。OpenRowset 運算式繫結該變數。Foreach 循環容器 + 變數對應 + 連接管理器運算式 = SSIS 批量處理同結構檔案的**黃金組合**。掌握「動態繫結」與「延遲驗證」兩大核心技巧,即可構建彈性、可維護、可擴展的自動化 ETL 流程。搭配資料檢視器除錯、檔案歸檔、錯誤隔離、參數化部署,打造企業級資料整合管線。