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

我知道这是讨论了很多,但我没有find如何做到这一点的解决scheme。

我需要的是导入一个Excel文件(xls / xlsx)到我的数据库表。 这是一个button,它执行的命令是这样的:

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

它工作很好。 但我需要导入excel文件不是CSV。 据我所知LOAD DATA命令不支持xls是二进制文件。 那么有什么解决办法呢? 请帮忙

非常感谢

佩皮斯

.xls永远不会直接导入到MySQL中。 这是一个复合的OLE文件,这意味着它的内部布局是不可理解的,只有凡人(甚至比尔盖茨)。 .xlsx基本上只是一个包含多个.xml / xslt / etc的.zip文件。 文件。 您可能可以提取包含实际电子表格数据的相关.xml文件,但又不一定是MySQL的load infile可直接导入的格式。

最简单的解决scheme是将.xls / xlsx导出到.csv。

您可以在dbForge Studio for MySQL中使用数据导入工具(MS Excel或MS Excel 2007格式)加载xls或xlsx文件。 这个工具直接打开Excel文件,不用COM接口; 并支持命令行。

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

1 /打开你的'.xlsx'文件Office Excel,点击菜单上的'另存为'button,然后select

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

从“另存为types”列表。 最后点击“保存”button。

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

3 /login到您的数据库:

 mysql -u root -pSomePassword 

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

 use db1 

5 /在你的目标数据库(例如'db1')中创build一个类似上面'.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'文件。 你可以删除这个选项。

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