我知道这已经讨论了很多,但我找不到如何做到这一点的解决方案。
我需要的是将excel文件(xls / xlsx)导入我的数据库表。它是一个执行该操作的按钮,执行的命令就是:
string cmdText = "LOAD DATA INFILE 'importTest4MoreMore.csv' INTO TABLE management FIELDS TERMINATED BY ',';";
效果很好。但我需要导入excel文件而不是CSV。据我所知,LOAD DATA命令不支持xls所针对的二进制文件。 那么解决方案是什么?请帮忙
非常感谢
佩皮斯
答案 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语句来导入您的所有数据。