2011-11-02 62 views
4

我知道這個問題已經討論了很多,但是我找不到解決方案。有沒有辦法將LOAD DATA INFILE(導入)xlsx文件導入MySQL數據庫表

我需要的是將Excel文件(xls/xlsx)導入到我的數據庫表中。這是一個按鈕,它和執行的命令是這樣的:

string cmdText = "LOAD DATA INFILE 'importTest4MoreMore.csv' INTO TABLE management FIELDS TERMINATED BY ',';"; 

它很好用。但我需要導入excel文件而不是CSV。據我所知,LOAD DATA命令不支持xls所在的二進制文件。 那麼有什麼解決辦法呢?請幫助

非常感謝

佩皮斯

回答

12

.xls將會永遠可導入直接到MySQL。這是一個複合的OLE文件,這意味着它的內部佈局對於凡人(甚至比爾蓋茨)來說都是不可理解的。 .xlsx基本上只是一個包含多個.xml/xslt/etc的.zip文件。文件。您可能可以提取包含實際電子表格數據的相關.xml文件,但它又不可能採用MySQL的load infile可直接導入的格式。

最簡單的解決方案是將.xls/xlsx導出到.csv。

4

您可以在dbForge Studio for MySQL中使用Data Import工具(MS Excel或MS Excel 2007格式)加載xls或xlsx文件。該工具直接打開Excel文件,不使用COM接口;並支持命令行。

+0

+1 Blatant插件,但在主題上。不知道你如何設法不使用COM。 – Johan

+0

謝謝你們的答案。到目前爲止,我只是先保存爲CSV文件。但是dbForge Studio for MySQL不是我的解決方案,因爲它必須在我的web應用程序的代碼中實現,所以... – Pepys

+0

CSV格式對於數據導出和導入沒有限制,對於其他格式只有前50行處理。 Great Deal – Bernhard

1

看看sqlizer.io。你可以上傳XLSX文件,給它一個表格名稱和單元格範圍,它將生成一個CREATE TABLE語句和一堆INSERT語句來導入你的所有數據。

+0

對於瑞典文字符的Excel文件失敗。 –

+0

此網站無法使用。上傳時似乎是一個403錯誤。 –

3

如何導入 'XLSX' 文件到MySQL:

1 /打開.xlsx等文件,Office Excel中,點擊 '另存爲' 按鈕,從菜單中選擇

'CSV (MS-DOS) (*.csv)' 
從'

保存爲類型「列表。最後點擊'保存'按鈕。

2 /複製或上傳.csv文件到您安裝MySQL服務器(如目錄路徑:在Linux服務器 '/根/ someDirectory /')

3 /登錄到您的數據庫:

mysql -u root -pSomePassword 

4 /創建和使用目標數據庫:

use db1 

5 /在你的目標數據庫(例如「DB1」)與像'.csv等上面的文件的那些列上創建一個MySQL表。

6 /執行以下命令:

LOAD DATA INFILE '/root/someDirectory/file1.csv' INTO TABLE `Table1` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; 

請注意,選擇「忽略1號線」說,MySQL的忽略「.csv格式文件的第一行。所以,它只適用於帶有1個標題列的'.xlsx'文件。您可以刪除此選項。

相關問題