當前位置:才華齋>計算機>辦公自動化>

如何把Excel工作表中資料匯入資料庫

辦公自動化 閱讀(1.31W)

大家知道要如何把Excel工作表中資料匯入資料庫呢?有什麼方法呢?下面一起來看看!

如何把Excel工作表中資料匯入資料庫

 我想至少有這樣兩種比較容易實現的方法:

1、直接用Sql語句查詢

2、先用excle中的資料生成xml檔案,再把xml匯入資料庫

第一種方法(方法二以後再試),找到聯機叢書裡實現此功能的Sql語句如下:

SELECT* FROMOpenDataSource('B.4.0', 'DataSource="c:";UserID=Admin;Password=;Extendedproperties=Excel5.0')…xactions

語句是有了,但我還是試了很久,因為各個引數具體該怎麼設定它沒有說。Data Source就是excel檔案的路徑,這個簡單;UserId、Password和Extended properties這三個屬性我改成了各種各樣的與本機有關的使用者名稱、密碼以及excel版本都不對,最後用上面例子裡的值“User ID=Admin;Password=;Extended properties=Excel 5.0”才成功了,暈啊;最後個“xactions”更是查了很多資料,其實就僅僅是excel檔案裡所選的工作表名而已,怪我對excel不夠熟悉了,另外注意預設的Sheet1要寫成[Sheet1$]

 最後,看看我成功的測試

資料庫裡建好一個表testTable_1,有5個欄位id, name, date, money, content,C盤下檔案的'sheet1工作表裡寫好對應的資料並設好資料型別,執行如下插入語句:

intotestTable_1([name],[date],[money],[content]) Select[姓名],[日期],[金額],[內容] FROMOpenDataSource('B.4.0', 'DataSource="C:"; UserID=Admin;Password=;Extendedproperties=Excel5.0')…[Sheet1$]

select裡的列名我一開始用*代替,但發現輸出順序與我預期的不同,是“金額、內容、日期、姓名”,不知道具體有什麼規律,就老老實實寫名字了。操作成功

回過頭來看看市場部的要求,假設在我這張表裡實現,可以先判斷如excel裡存在與記錄相同的name欄位(name要唯一非空)時就刪除記錄,之後再插入,這樣簡單,但自增的id欄位會因為插入而改變,那是不行的了。可行的方法是先讀出excel裡全部記錄,然後用遊標一條條分析,如果存在這個name就更新否則就插入。OK,下次就不用讓他們再對著文件一條條Update了。