- 相關(guān)推薦
如何把Excel工作表中數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)
大家知道要如何把Excel工作表中數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)呢?有什么方法呢?下面一起來(lái)看看!
我想至少有這樣兩種比較容易實(shí)現(xiàn)的方法:
1、直接用Sql語(yǔ)句查詢
2、先用excle中的數(shù)據(jù)生成xml文件,再把xml導(dǎo)入數(shù)據(jù)庫(kù)
第一種方法(方法二以后再試),找到聯(lián)機(jī)叢書(shū)里實(shí)現(xiàn)此功能的Sql語(yǔ)句如下:
SELECT* FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0', 'DataSource="c:Financeaccount.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')…xactions
語(yǔ)句是有了,但我還是試了很久,因?yàn)楦鱾(gè)參數(shù)具體該怎么設(shè)置它沒(méi)有說(shuō)。Data Source就是excel文件的路徑,這個(gè)簡(jiǎn)單;UserId、Password和Extended properties這三個(gè)屬性我改成了各種各樣的與本機(jī)有關(guān)的用戶名、密碼以及excel版本都不對(duì),最后用上面例子里的值“User ID=Admin;Password=;Extended properties=Excel 5.0”才成功了,暈啊;最后個(gè)“xactions”更是查了很多資料,其實(shí)就僅僅是excel文件里所選的工作表名而已,怪我對(duì)excel不夠熟悉了,另外注意默認(rèn)的Sheet1要寫(xiě)成[Sheet1$]
最后,看看我成功的測(cè)試
數(shù)據(jù)庫(kù)里建好一個(gè)表testTable_1,有5個(gè)字段id, name, date, money, content,C盤(pán)下book1.xls文件的sheet1工作表里寫(xiě)好對(duì)應(yīng)的數(shù)據(jù)并設(shè)好數(shù)據(jù)類型,執(zhí)行如下插入語(yǔ)句:
intotestTable_1([name],[date],[money],[content]) Select[姓名],[日期],[金額],[內(nèi)容] FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0', 'DataSource="C:Book1.xls"; UserID=Admin;Password=;Extendedproperties=Excel5.0')…[Sheet1$]
select里的列名我一開(kāi)始用*代替,但發(fā)現(xiàn)輸出順序與我預(yù)期的不同,是“金額、內(nèi)容、日期、姓名”,不知道具體有什么規(guī)律,就老老實(shí)實(shí)寫(xiě)名字了。操作成功
回過(guò)頭來(lái)看看市場(chǎng)部的要求,假設(shè)在我這張表里實(shí)現(xiàn),可以先判斷如excel里存在與記錄相同的name字段(name要唯一非空)時(shí)就刪除記錄,之后再插入,這樣簡(jiǎn)單,但自增的id字段會(huì)因?yàn)椴迦攵淖儯鞘遣恍械牧恕?尚械姆椒ㄊ窍茸x出excel里全部記錄,然后用游標(biāo)一條條分析,如果存在這個(gè)name就更新否則就插入。OK,下次就不用讓他們?cè)賹?duì)著文檔一條條Update了。
【如何把Excel工作表中數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)】相關(guān)文章:
excel表中如何查找重復(fù)數(shù)據(jù)06-12
如何解除Excel數(shù)據(jù)保護(hù)08-29
怎樣在Excel表中求和08-28
Excel工作表中怎么添加圖形09-17
Excel2013如何導(dǎo)入網(wǎng)頁(yè)上的表格10-09
如何在PHP導(dǎo)出excel格式數(shù)據(jù)10-18
怎么制作excel2013數(shù)據(jù)透視表10-27