在使用ETL工具定期導出Excel格式的數據文檔時,有時會要求導出的文件名稱要以當天的日期或時間結尾,用以區分或歸檔。
微軟的SSIS也能實現這樣的要求,重點有兩個:
1.使用Variable設置Excel文件名
2.使用Execute SQL Task 預先設置Excel文件裡的WorkSheet(類似於建表的方式)
以下是實現過程:
設置Excel Connection Manager的屬性ExcelFilePath為用戶定義的Variable。
用戶定義Variable:FilePath,計算公式如下:
以上步驟實現了導出的Excel文件名以當天日期結尾的效果,但是由於該文件是動態生成的,事先沒有建立,所以運行時會出現數據流不知道字段映射到哪裡的問題。
因此還需要在Excel中事先建立一個“Table”,其結構和字段映射相匹配,這裡使用到了Execute SQL Task。一般這個控件是以Database為上下文環境運行的,但這裡將它的ConnectionType設置為Excel,然後用Create table語句在Excel Connection Manager對應的文件中建立WorkSheet的結構。
以下是運行結果: