標籤:
最近要開發一個小的答題系統,如果題目人工錄入那確實很麻煩。所以想到是不是可以從用一些現有資料格式的檔案匯入資料。在網上查了一下,看到有關於將excel的資料匯入到mysql的方法。所以將題庫資料整理成excel的。
然後另存新檔.csv格式的檔案。
然後在phpmyadmin中選擇匯入操作。
但是由於插入的資料出現亂碼,失敗。
尋找原因:因為excel預設編碼格式為ANSI,而mysql資料庫預設的編碼方式是utf-8。
解決辦法:我是用editplus將.csv格式的檔案開啟(開啟時將“編碼”選擇為系統預設即可),然後另存新檔一份編碼為utf-8的檔案。(我是只用了editplus進行的這個操作,如果還有其他可行並且方便的軟體,朋友們也可以留言交流)
然後重新執行匯入操作。
所有選項均為預設,匯入成功,但是資料表為建立表,並且表明為table 2(該資料庫中之前有一張表),並且表的欄位名為col1,col2......並且所有欄位的類型均為varchar。
檢查後發現,在匯入資料時,選擇完檔案後,會有如下提示
勾選上,點擊執行。
這次匯入的資料表的欄位名就是自己在excel中第一行設定的了。
雖然資料匯入到mysql中了,但是和我最初的目的仍有稍許偏差,我是想將excel表中的資料,匯入到資料庫中對應表中。
仔細分析後,發現問題可能在於選擇匯入時,目錄層級有問題。
前兩次選擇匯入操作的時候,都是在database下操作的。
這次在localhost》database》table下選擇匯入操作。
一上來就報錯,不過貌似資料插入的位置對了。根據提示,錯誤是主鍵列。我再建立表的時候,主鍵列設為自增。
先將自增屬性去掉試試。
依然報錯。
再將主鍵去掉試試。
資料終於插入進去了,不過excel表中第一行列名也被當做輸入插入到資料庫中了。 而且編號是從0開始的,這可能是剛才報錯的原因。
為了找出真正原因,重新測試。將表刪除重建立立一張空表。
開啟之前另存新檔utf-8編碼的.csv檔案,將列名的一行刪除並儲存檔案。
順利插入,大功告成,吼吼。
實測:向MySql資料庫匯入excel表資料