有人能解释一下如何将Microsoft Excel文件导入到MySQL数据库中吗?
例如,我的Excel表格看起来像这样:
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
有人能解释一下如何将Microsoft Excel文件导入到MySQL数据库中吗?
例如,我的Excel表格看起来像这样:
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
有一个简单的在线工具可用于此操作,名为sqlizer.io。
您可以上传XLSX文件,并输入工作表名称和单元格范围,它将生成一个CREATE TABLE语句和一堆INSERT语句,以将所有数据导入MySQL数据库。
(免责声明:我帮助运行SQLizer)
以下是另一种方法,可以将电子表格数据导入到MySQL数据库中,而不依赖于任何额外的软件。假设您想将Excel表格导入名为mydatabase
的MySQL数据库中的sales
表中。
选择相关单元格:
粘贴到Mr. Data Converter中,并将输出选择为MySQL:
在生成的输出中更改表名和列定义以适合您的要求:
CREATE TABLE sales (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Country VARCHAR(255),
Amount INT,
Qty FLOAT
);
INSERT INTO sales
(Country,Amount,Qty)
VALUES
('America',93,0.60),
('Greece',9377,0.80),
('Australia',9375,0.80);
如果你正在使用MySQL Workbench或者已经从命令行登录到mysql
,那么你可以直接执行步骤3生成的SQL语句。否则,将代码粘贴到文本文件中(例如import.sql
),并从Unix shell执行以下命令:
mysql mydatabase < import.sql
从SQL文件导入的其他方法可以在这个 Stack Overflow答案中找到。
将其导出为某种文本格式。最简单的可能是一个制表符分隔版本,但CSV也可以。
使用加载数据功能。请参见http://dev.mysql.com/doc/refman/5.1/en/load-data.html
向下滚动页面一半,它将给出制表符分隔数据的很好的示例:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\'
检查您的数据。有时引用或转义存在问题,您需要调整源代码、导入命令--或者更容易的办法是通过SQL进行后处理。
实际上有几种将Excel文件导入MySQL数据库的方法,难度和成功率各不相同。
Excel2MySQL。毫无疑问,这是将Excel数据导入MySQL最简单和最快的方法。它支持所有版本的Excel,不需要安装Office。
LOAD DATA INFILE:这个流行选项可能是最技术性的,需要一些MySQL命令执行的理解。在加载之前必须手动创建表并使用大小合适的VARCHAR字段类型,因此您的字段数据类型没有优化。LOAD DATA INFILE在导入超出“max_allowed_packet”大小的大文件时会遇到问题。需要特别注意避免导入特殊字符和外来Unicode字符的问题。以下是我最近使用的一个示例,用于导入名为test.csv的csv文件。
phpMyAdmin:首先选择您的数据库,然后选择导入选项卡。phpMyAdmin将自动创建您的表并大小调整VARCHAR字段,但它不会优化字段类型。phpMyAdmin在导入超出“max_allowed_packet”大小的大文件时会遇到问题。
MySQL for Excel:这是Oracle提供的免费Excel插件。使用向导有点繁琐,而且对于大文件,导入速度慢且存在错误,但对于具有VARCHAR数据的小文件,这可能是一个好选择。字段没有优化。
不确定您是否已经设置好了所有内容,但我使用的是PHP和MYSQL。因此,我使用一个名为PHPExcel的PHP类。它可以读取几乎任何格式的文件,如xls、xlsx、cvs等,并允许您进行读取和/或插入操作。
所以,我将Excel加载到phpexcel对象中,然后循环遍历所有行。根据我的需求,我编写一个简单的SQL插入命令,将Excel文件中的数据插入到我的表中。
在前端方面需要一些工作,但只需要微调一些现有的代码示例即可。但是,一旦您完成了导入的调整,对其进行更改就变得简单而快速。
步骤1 创建您的CSV文件
步骤2 登录到您的MySQL服务器
mysql -uroot -pyourpassword
步骤三:加载您的 CSV 文件
load data local infile '//home/my-sys/my-excel.csv' into table my_tables fields terminated by ',' enclosed by '"' (Country, Amount,Qty);