?????? 相信在我們開發(fā)過程中會遇到這樣的問題毡琉!剛上線的新系統(tǒng)铁瞒,需要導入項目之前的一些數(shù)據(jù),這些數(shù)據(jù)通常都是文本或者excle等文件保存起來的桅滋,由于數(shù)據(jù)量比較大慧耍,讓人為的去一條一條的錄入,顯然工作量比較大丐谋,也不可能芍碧;還有個問題就是,之前的保存在excle的數(shù)據(jù)号俐,可能對應(yīng)你現(xiàn)在系統(tǒng)中的多張表泌豆,給數(shù)據(jù)分割也是一件麻煩的事!針對這些問題吏饿,今天和大家分享一下踪危,我在遇到這種問題的時候,解決的方式方法猪落。
?? 首先贞远,如果一個表格中的數(shù)據(jù),剛好在一張mysql表中笨忌,這樣的情況蓝仲,處理起來比較簡單,處理起來有這樣的幾個步驟:
1官疲,將excel表格打開-->另存為-->選擇csv格式保存(默認用逗號分隔)袱结,保存到指定位置。
? ? ?? 這步的原因是因為途凫,mysql數(shù)據(jù)庫垢夹,不能直接將xls格式的excle解析。這一點可以在mysql數(shù)據(jù)庫導出的時候發(fā)現(xiàn)颖榜,因為導出的數(shù)據(jù)棚饵,基本就是.sql,.csv,.json格式的,對于excle改為sql或者json格式掩完,明顯有太多的工作噪漾,而,改成csv格式且蓬,只需另存為即可欣硼。
2,用記事本打開csv文件恶阴,另存為txt文件格式诈胜,編碼格式為UTF-8(目前本地采用ANSI編碼格式豹障,UTF-8時導入會出錯)
?? ? 這一步操作事因為,數(shù)據(jù)庫的編碼格式一般事utf-8焦匈,但是另存為的csv文件血公,默認編碼是ANSI格式,如果沒有第二步驟操導入的時候缓熟,會說累魔,編碼格式不正確,如果是mac開發(fā)的朋友够滑,可能會遇到找不到如何改變文件編碼的問題垦写,可以發(fā)給windos系統(tǒng)的朋友讓他幫你改一下再發(fā)過來即可!
3彰触,我這里使用的是mysqlworkbench梯投,直接在選中表格-->右鍵-選擇Table Data Improte Wizard 即可,后面一步一步按照向?qū)Р僮骷纯伞?/b>
???????? 以上的解決方法可以解決百分之八十的問題况毅,在文章開頭的時候說過分蓖,很多時候,之前的數(shù)據(jù)在一張excel中俭茧,但是心系統(tǒng)或者老系統(tǒng)中咆疗,一個excel可能對應(yīng)多張表,這樣的問題如何解決母债? 我總結(jié)的有兩種解決辦法。
第一種:就是拆分excel表格尝抖,按照數(shù)據(jù)庫的表毡们,將一個excel拆成多個,每一個表格對應(yīng)一張表中的數(shù)據(jù)昧辽,再用上面的方法衙熔,將每一個表格數(shù)據(jù),導入表中搅荞。
第二種:將該excel表中的數(shù)據(jù)红氯,導入數(shù)據(jù)庫中的一個臨時的表,然后再講這張總表中的數(shù)據(jù)通過sql語句咕痛,同步到每個表中痢甘,具體sql語句如下圖:
以上可以選者負責總表中的某些字段到其它表中即可。
?通過java程序的方式(注解)實現(xiàn)Excel數(shù)據(jù)導入導出數(shù)據(jù)庫請看我的另一篇文章[java Excel數(shù)據(jù)通過注解的方式導出導入數(shù)據(jù)庫詳解](http://www.reibang.com/writer#/notebooks/19597236)