任何人都可以解釋如何將Microsoft Excel文件導入到MySQL數據庫中嗎?如何將excel文件導入到MySQL數據庫中
例如,我的Excel表格是這樣的:提前
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
感謝。
FERO
任何人都可以解釋如何將Microsoft Excel文件導入到MySQL數據庫中嗎?如何將excel文件導入到MySQL數據庫中
例如,我的Excel表格是這樣的:提前
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
感謝。
FERO
出口成一些文本格式。最簡單的可能是製表符分隔版本,但CSV也可以。
使用加載數據功能。見http://dev.mysql.com/doc/refman/5.1/en/load-data.html
看一半下來的頁面,因爲它會給出製表符分隔數據的好例子:
FIELDS TERMINATED BY ENCLOSED BY '' ESCAPED BY '\'
檢查您的數據。有時引用或轉義有問題,您需要調整源代碼,導入命令 - 或者通過SQL後處理可能會更容易。
爲導入Excel 2007中到MySQL與正確的編碼(UTF-8)搜索此評論一步步例如:
「發佈者邁克·萊爾德在2010上午12點50 10月13日在接下來的URL「
:
實際上有幾個以不同程度的複雜性和成功將excel文件導入到MySQL數據庫的方法。
Excel2MySQL或Navicat工具。充分披露,我是Excel2MySQL的作者。這兩個實用程序不是免費的,但它們是最簡單的選項,並且具有最少的限制。它們還包含其他功能來幫助將Excel數據導入MySQL。例如,Excel2MySQL會自動創建表並自動優化字段數據類型,如日期,時間,浮點數等。如果您急於或無法使用其他選項來處理數據,那麼這些實用程序可能會滿足您的需求。
LOAD DATA INFILE:這個流行的選擇也許是最技術和需要MySQL命令執行有一定的瞭解。您必須在加載之前手動創建表並使用適當大小的VARCHAR字段類型。因此,您的字段數據類型未經優化。 LOAD DATA INFILE無法導入超過「max_allowed_packet」大小的大文件。需要特別注意避免導入特殊字符和外來Unicode字符的問題。以下是我用來導入名爲test.csv的csv文件的最近示例。
phpMyAdmin:首先選擇你的數據庫,然後選擇導入選項卡。 phpMyAdmin會自動創建你的表並調整VARCHAR字段的大小,但是它不會優化字段類型。 phpMyAdmin無法導入超過「max_allowed_packet」大小的大文件。
MySQL for Excel:這是一個免費的Excel加載從Oracle。這個選項有點繁瑣,因爲它使用了一個嚮導,並且導入速度很慢,並且有大文件的問題,但對於具有VARCHAR數據的小文件來說,這可能是一個不錯的選擇。字段沒有優化。
嗨@panofish,我有一個每天更新的Excel。我只想把更新把數據放到mysql數據庫表中而不是整個表中。 (即)每天在桌子上放一行。如何才能做到這一點? – 2014-11-24 07:35:41
這些解決方案都專注於加載整個電子表格並替換您的MySQL表格或附加到表格中。更改是否添加新記錄或更改現有記錄? – panofish 2014-11-24 14:20:04
它們只是覆蓋這些值。但我只想要附加那些基於日期的數據庫中尚未存在的值。這可以通過添加一些行而不是每天添加多行來提高性能。 – 2014-11-25 02:34:58
有一個簡單的在線工具,可以做到這一點稱爲sqlizer.io。
您上傳XLSX文件,請輸入一個工作表名稱和單元格範圍,它會生成一個CREATE TABLE語句和一堆INSERT語句的所有數據導入到一個MySQL數據庫。
這是太棒了!我希望我能知道這......呃....一年半前? – Piotr 2016-03-03 16:36:06
好知道這個工具存在,但絕對要考慮是否應該使用它。如果你的電子表格包含敏感數據(例如用戶電子郵件,密碼,cc信息,醫療信息等),這可能不是一個好主意。它可能是安全的,但沒有辦法讓你知道這是肯定的。 – 2016-08-02 15:46:21
這是免費的嗎?我試過但他們要求支付 – 2016-12-07 10:16:35
不知道你是否擁有所有這些設置,但對於我來說,我使用的是PHP和MYSQL。所以我使用PHP類PHPExcel。這需要幾乎任何格式的文件,xls,xlsx,cvs,...然後讓您讀取和/或插入。
所以我做的是將excel加載到phpexcel對象中,然後循環遍歷所有行。基於我想要的,我編寫了一個簡單的SQL插入命令,將excel文件中的數據插入到我的表中。
在前端是一個小工作,但它只是調整一些現有的代碼示例。但是,當您撥打電話進行更改時,導入過程簡單快捷。
當使用文本文件導入數據時,我遇到了報價問題以及Excel如何格式化數字。例如,我的Excel配置使用逗號作爲小數點分隔符而不是點。
現在我使用微軟訪問 2010打開我的MySql表作爲鏈接表。在那裏,我可以簡單地將單元格從Excel複製並粘貼到Access。
要做到這一點,首先安裝MySql ODBC driver並創建一個ODBC connection。 然後在訪問中,在「外部數據」選項卡中,打開「ODBC數據庫」對話框並使用ODBC連接鏈接到任何表。
最好也是最簡單的方法是使用Oracle的免費應用程序「MySQL for Excel」應用程序。這個應用程序添加了一個插件來出口和導入數據到MySQL。您可以從here下載
下面是將電子表格數據導入到不依賴任何額外軟件的MySQL數據庫的另一種方法。假設您要將Excel表導入名爲mydatabase
的MySQL數據庫的sales
表中。
選擇相應的單元格:
粘貼到Mr. Data Converter,並選擇輸出爲MySQL的:
更改表名和字段定義在生成的輸出中符合您的要求:
CREATE TABLE sales (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Country VARCHAR(255),
Amount INT,
Qty FLOAT
);
INSERT INTO sales
(Country,Amount,Qty)
VALUES
('America',93,0.60),
('Greece',9377,0.80),
('Australia',9375,0.80);
如果您使用MySQL Workbench或已經登錄到mysql
從命令行,則可以執行從直接步驟3中生成的SQL語句。否則,將代碼粘貼到一個文本文件(例如,import.sql
)和Unix外殼執行以下命令:
mysql mydatabase < import.sql
其他方式從SQL文件導入可以this Stack Overflow answer找到。
這對我有很大的幫助。謝謝。 – Ionut 2017-06-27 17:44:16
謝謝。我一直在尋找這個解決方案:) – 2018-01-26 15:03:41
這免費的實用工具,使導入Excel電子表格到MySQL錶快速和容易http://panofish.net/convert-import-excel-spreadsheets-into-mysql-database/ – panofish 2013-06-13 20:06:12
+1一個新的和不同的想法。處理速度非常慢,它首先讀取文件中的每一行,然後上傳任何內容。大約需要15分鐘導入5.2K行 – Fr0zenFyr 2013-09-20 11:27:16
對於某些電子表格,由於列和行的數量,它可能會很慢。但是,我責怪微軟的COM對象庫,這是用來閱讀電子表格。我的程序以圖書館允許的速度讀取電子表格。 MySQL插入速度非常快。如果您可以在導入之前刪除不必要的列...可以提供幫助。 – panofish 2014-01-27 21:10:30