把Excel表中數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫

字號:

用Sql語句查詢
    找到聯(lián)機叢書里實現(xiàn)此功能的Sql語句如下:
    Select *
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
     'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
    語句是有了,但我還是試了很久,因為各個參數(shù)具體該怎么設(shè)置它沒有說。Data Source就是excel文件的路徑,這個簡單;UserId、Password和Extended properties這三個屬性我改成了各種各樣的與本機有關(guān)的用戶名、密碼以及excel版本都不對,最后用上面例子里的值“User ID=Admin;Password=;Extended properties=Excel 5.0”才成功了,暈??;最后個“xactions”更是查了很多資料,其實就僅僅是excel文件里所選的工作表名而已,怪我對excel不夠熟悉了,另外注意默認的Sheet1要寫成[Sheet1$]
    最后,看看我成功的測試
    數(shù)據(jù)庫里建好一個表testTable_1,有5個字段id, name, date, money, content,C盤下book1.xls文件的sheet1工作表里寫好對應(yīng)的數(shù)據(jù)并設(shè)好數(shù)據(jù)類型,執(zhí)行如下插入語句:
    insert into testTable_1 ([name], [date], [money], [content])
    Select [姓名], [日期], [金額], [內(nèi)容]
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="C:\Book1.xls";
    User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
    select里的列名我一開始用*代替,但發(fā)現(xiàn)輸出順序與我預(yù)期的不同,是“金額、內(nèi)容、日期、姓名”,不知道具體有什么規(guī)律,就老老實實寫名字了。操作成功