這個方法最簡單但不是傻瓜式的方法,需要你對Excel和MySQL都有一點點了解。
當(dāng)然,我在最后提供了一個作為例子的Excel文件,但仍然需要你會寫MySQL的INSERT語句,這樣才能調(diào)試可能出現(xiàn)的錯誤。
1.在需要導(dǎo)入的數(shù)據(jù)最后一列,寫入一個Excel公式(例子中是“SQL”下面的單元格,“SQL”是不必要的,僅僅是為了看起來方便)。
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",RC[-3],"','",RC[-2],"','",RC[-1],"');")
這樣就會生成insert語句,正如你在例子Excel文件中看到的(當(dāng)你單擊SQL下面的單元格時,可以看到公式)。
這個實際上是使用了Excel的CONCATENATE字符串連接函數(shù),將數(shù)據(jù)生成你需要的SQL語句。RC[-2]是從最后一列(不包括該列)往前數(shù)的第二列。
2.將"SQL"下面單元格的公式復(fù)制到該列的其它單元格,這樣可以看到生成了所需要的所有SQL語句。
3.將最后一列選中,復(fù)制數(shù)據(jù)到一個文本文件,將該文本文件另存為一個.sql文件(別忘了刪除第一行的“SQL”)。
4.能夠運行sql文件的工具有很多,運行這個文件就可以了。如果沒有工具,參考 在windows下批量執(zhí)行mysql腳本(http://www.albertsong.com/read-21.html)。
使用上面的方法,你需要知道什么樣的insert語句對于mysql來說是正確的。
最常見的是日期的格式,如果不轉(zhuǎn)換成字符串,用上面的方法會生成一個整數(shù),這樣插入mysql后就不對了。
因此上面的公式改成
=CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",TEXT(RC[-3],"yyyy-mm-dd hh:mm:ss"),"','",RC[-2],"','",RC[-1],"');")
這里用到了TEXT函數(shù)來將日期格式化成mysql能接受的日期字符串。
具體請參考例子。
Excel2Mysql.rar文件說明如下:
doc.txt--本文
SqlGen.xls--Excel例子文件
create.sql--建表語句
insert.sql--生成的insert語句
function.txt--需要在Excel中使用的函數(shù)
寫了這么多,實際上就一句話:使用Excel的CONCATENATE函數(shù)生成sql語句并執(zhí)行。
如果懂一點兒VBA可以直接生成insert.sql文件
聯(lián)系客服