將一個目錄下(可以包括子目錄)結構一樣的excel文件批量導入sql2005,可以用ssis來定制任務.下面用大量圖片完全說明整個過程.
1、建立測試excel文件,假設有a b c d四個字段,保存在f:/excel目錄下
並復制很多個一樣的文件
2、打開Microsoft Visual Studio 2005或者隨sql2005安裝的SQL Server Business Intelligence Development Studio,新建一個商業智能項目。
3、工具箱拖一個Foreach循環容器
4、編輯容器,設定遍歷目錄和其他參數
5、新建一個映射變量,用來存儲遍歷當中的文件路徑
6、怎麼存儲不用你關心,你只要指定一個變量名就ok了
7、確定後,容器生成完畢,接著拖一個數據流任務到容器中
8、切換到數據流tab頁,拖一個excel源
9、編輯excel源,選擇一個剛剛的任意excel
10、選擇一個sheet
11、拖一個ole db目標到數據流中
12、按住excel源的綠色箭頭,拖動到oledb目標上
13、編輯oledb目標,選擇一個sqlserver數據表,這個表必須是已經存在的,這裡我們建立一個ssistest數據庫,生成一個和excel結構一樣的表tt
create table tt(a varchar(100),b varchar(100),c varchar(100),d varchar(100))
然後用oledb去連接
14、編輯字段映射關系,結構一樣,它會自動找到
15、編輯下面的excel鏈接管理器,這裡將用到foreach的變量來代替剛剛選擇的那個excel文件
16、連接管理器的屬性中設置變量的映射用法
17、expressions的屬性編輯列表中,左邊選擇 excelfilepath,這個是連接管理器的屬性,我們將用變量來代替
18、再點擊表達式的屬性編輯按鈕,把列表中的變量用戶::xlspath變量拖到下面的表達式框中
19、這時ssis將會報錯,並給出警告
20、上圖中黃顏色的區域,右鍵-屬性,打開控制流的屬性窗口,設置DelayValidation為True就可以了。
經過以上20步的配置,整個過程就結束了,你可以按下F5看看效果,文件夾下所有的excel將被批量導入數據庫。另外可以通過sqlserver的作業來調用ssis的包實現定期自動把目錄下的excel導入數據庫。