有没有办法将LOAD DATA INFILE(导入)xlsx文件导入MySQL数据库表

时间:2011-11-02 15:24:44

标签: mysql excel import load

我知道这已经讨论了很多,但我找不到如何做到这一点的解决方案。

我需要的是将excel文件(xls / xlsx)导入我的数据库表。它是一个执行该操作的按钮,执行的命令就是:

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

效果很好。但我需要导入excel文件而不是CSV。据我所知,LOAD DATA命令不支持xls所针对的二进制文件。 那么解决方案是什么?请帮忙

非常感谢

佩皮斯

4 个答案:

答案 0 :(得分:12)

.xls永远不会直接导入MySQL。它是一个复合的OLE文件,这意味着它的内部布局是凡人(甚至比尔盖茨)无法理解的。 .xlsx基本上只是一个包含多个.xml / xslt / etc的.zip文件。文件。您可以提取包含实际电子表格数据的相关.xml,但同样 - 它不太可能采用MySQL负载信息可直接导入的格式。

最简单的解决方案是将.xls / xlsx导出为.csv。

答案 1 :(得分:4)

您可以在Data Import中使用dbForge Studio for MySQL工具(MS Excel或MS Excel 2007格式)加载xls或xlsx文件。该工具直接打开Excel文件,不使用COM接口;和/或命令行。

答案 2 :(得分:4)

如何将'xlsx'文件导入MySQL:

1 /打开你的'.xlsx'文件Office Excel并点击菜单中的'另存为'按钮并选择

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

来自“保存类型”列表。最后点击“保存”按钮。

2 /将.csv文件复制或上传到已安装的MySQL服务器(目录路径如:Linux服务器中的'/ root / someDirectory /')

3 /登录您的数据库:

mysql -u root -pSomePassword

4 /创建和使用目标数据库:

use db1

5 /在目标数据库中创建一个MySQL表(例如'db1'),其中包含类似上面'.csv'文件的列。

6 /执行以下命令:

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

请注意,选项'IGNORE 1 LINES'表示MySQL忽略第一行'.csv'文件。因此,它仅适用于带有1个标题列的“.xlsx”文件。您可以删除此选项。

答案 3 :(得分:1)

看看sqlizer.io。您可以上传XLSX文件,为其指定工作表名称和单元格范围,它将生成一个CREATE TABLE语句和一堆INSERT语句来导入您的所有数据。