Mysql

Excel 電子表格導入 MySQL

  • January 5, 2015

我想將大約 1000 條記錄添加到包含 31 個欄位的表中。

最糟糕的是,這 1000 條記錄採用 Excel 表格的形式,其中一些列未填寫。有沒有什麼簡單的方法可以將此 excel 表導入到我的表中,其中未填充的條目為 NULL ?

使用 Linux 和 MySQL

從 MySQL 5.1 開始,出現了一個名為MySQL for Excel的本機工具。

它與 MySQL for Visual Studio、一堆連接器、範例數據庫等捆綁在一起

MySQL 文件有一個網頁

該產品的使用者還有一個論壇(截至發帖時,本月有 5 個活躍的問題)

手動替代

如果您有耐心,您可以執行以下操作

STEP 01) 使用CSV 儲存引擎創建表

當您像這樣創建表時:

CREATE TABLE mydb.mytable
(
   i INT NOT NULL,
   c CHAR(10) NOT NULL,
   ...
   column29 INT NOT NULL,
   column30 CHAR(10) NOT NULL,
   column31 CHAR(30) NOT NULL
) ENGINE=CSV;

這將在 mydb 子文件夾下創建兩個文件

  • mytable.frm
  • 我的表.CSV

CAVEAT:我認為NULLMySQL CSV 表不允許使用列

步驟 02)

  • 使用 Excel,導出與 MySQL CSV 表具有相同列數的電子表格。空單元格應顯示為"".

STEP 03) 如果在 Linux 中使用 MySQL,你可以這樣做

cd /var/lib/mysql/mydb
mv mytable.CSV mytable_old.CSV

步驟 04) 將 Excel 輸出複製到/var/lib/mysql/mydb/mytable.CSV

步驟 05) 在 mysql 客戶端中,執行

FLUSH TABLES;
SELECT * FROM mydb.mytable;

這將關閉並重新打開所有表。如果你看到你的數據,恭喜!

STEP 06) 如果你得到一個錯誤

如果在 上出現錯誤SELECT * FROM mydb.mytable;,則其中一個單元格不是用雙引號括起來的欄位。只需重新導出數據並再次嘗試步驟 04,直到正確為止

對於那些使用 MySQL for Windows 的人

如果您有 MySQL for Windows,則可以放入 mydb\mytable.CSV,因為 Windows 鎖定文件的方式。您將必須執行net stop mysql,將文件複製到,然後net start mysql跳過FLUSH TABLES;並執行SELECT * FROM mydb.mytable;

試一試 !!!

您可以使用DocChow,這是一個用於將 Excel 導入 MySQL 的非常直覺的 GIU,它在大多數常見平台(包括 Linux)上都是免費的。

尤其是如果您關心日期、日期時間數據類型,DocChow 可以輕鬆處理數據類型。如果您正在使用多個 Excel 電子表格,並且您希望將這些電子表格導入到一個 MySQL 表中,DocChow 會完成這項繁瑣的工作。

引用自:https://dba.stackexchange.com/questions/28943