向MySql數據庫導入excel表數據


  最近要開發一個小的答題系統,如果題目人工錄入那確實很麻煩。所以想到是不是可以從用一些現有數據格式的文件導入數據。在網上查了一下,看到有關於將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文件,將列名的一行刪除並保存文件。
 圖片
        
   順利插入,大功告成,吼吼。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM