Excel 電子表格導入 MySQL
我想將大約 1000 條記錄添加到包含 31 個欄位的表中。
最糟糕的是,這 1000 條記錄採用 Excel 表格的形式,其中一些列未填寫。有沒有什麼簡單的方法可以將此 excel 表導入到我的表中,其中未填充的條目為 NULL ?
使用 Linux 和 MySQL
從 MySQL 5.1 開始,出現了一個名為MySQL for Excel的本機工具。
它與 MySQL for Visual Studio、一堆連接器、範例數據庫等捆綁在一起。
MySQL 文件有一個網頁
該產品的使用者還有一個論壇(截至發帖時,本月有 5 個活躍的問題)
手動替代
如果您有耐心,您可以執行以下操作
當您像這樣創建表時:
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:我認為
NULL
MySQL 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 會完成這項繁瑣的工作。