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

Pep*_*pys 5 mysql import excel load

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

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

 string cmdText = "LOAD DATA INFILE 'importTest4MoreMore.csv' INTO TABLE management FIELDS TERMINATED BY ',';";
Run Code Online (Sandbox Code Playgroud)

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

非常感谢

佩皮斯

Mar*_*c B 12

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

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


Moh*_*asi 7

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

1/打开你的“.xlsx”文件Office Excel,然后从菜单中点击“另存为”按钮并选择

 'CSV (MS-DOS) (*.csv)' 
Run Code Online (Sandbox Code Playgroud)

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

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

3/ 登录到您的数据库:

mysql -u root -pSomePassword
Run Code Online (Sandbox Code Playgroud)

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

use db1
Run Code Online (Sandbox Code Playgroud)

5/ 在目标数据库(例如“db1”)中创建一个 MySQL 表,其中的列类似于上面的“.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;
Run Code Online (Sandbox Code Playgroud)

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