如何将excel文件导入到MySQL数据库中
任何人都可以解释如何将Microsoft Excel文件导入到MySQL数据库中吗?如何将excel文件导入到MySQL数据库中
例如,我的Excel表格是这样的:提前
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
感谢。
FERO
出口成一些文本格式。最简单的可能是制表符分隔版本,但CSV也可以。
使用加载数据功能。见http://dev.mysql.com/doc/refman/5.1/en/load-data.html
-
看一半下来的页面,因为它会给出制表符分隔数据的好例子:
FIELDS TERMINATED BY ENCLOSED BY '' ESCAPED BY '\'
- '\ t'
检查您的数据。有时引用或转义有问题,您需要调整源代码,导入命令 - 或者通过SQL后处理可能会更容易。
为导入Excel 2007中到MySQL与正确的编码(UTF-8)搜索此评论一步步例如:
“发布者迈克·莱尔德在2010上午12点50 10月13日在接下来的URL“
:
实际上有几个以不同程度的复杂性和成功将excel文件导入到MySQL数据库的方法。
-
Excel2MySQL或Navicat工具。充分披露,我是Excel2MySQL的作者。这两个实用程序不是免费的,但它们是最简单的选项,并且具有最少的限制。它们还包含其他功能来帮助将Excel数据导入MySQL。例如,Excel2MySQL会自动创建表并自动优化字段数据类型,如日期,时间,浮点数等。如果您急于或无法使用其他选项来处理数据,那么这些实用程序可能会满足您的需求。
-
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:这是一个免费的Excel加载从Oracle。这个选项有点繁琐,因为它使用了一个向导,并且导入速度很慢,并且有大文件的问题,但对于具有VARCHAR数据的小文件来说,这可能是一个不错的选择。字段没有优化。
嗨@panofish,我有一个每天更新的Excel。我只想把更新把数据放到mysql数据库表中而不是整个表中。 (即)每天在桌子上放一行。如何才能做到这一点? – 2014-11-24 07:35:41
这些解决方案都专注于加载整个电子表格并替换您的MySQL表格或附加到表格中。更改是否添加新记录或更改现有记录? – panofish 2014-11-24 14:20:04
它们只是覆盖这些值。但我只想要附加那些基于日期的数据库中尚未存在的值。这可以通过添加一些行而不是每天添加多行来提高性能。 – 2014-11-25 02:34:58
有一个简单的在线工具,可以做到这一点称为sqlizer.io。
您上传XLSX文件,请输入一个工作表名称和单元格范围,它会生成一个CREATE TABLE语句和一堆INSERT语句的所有数据导入到一个MySQL数据库。
这是太棒了!我希望我能知道这......呃....一年半前? – Piotr 2016-03-03 16:36:06
好知道这个工具存在,但绝对要考虑是否应该使用它。如果你的电子表格包含敏感数据(例如用户电子邮件,密码,cc信息,医疗信息等),这可能不是一个好主意。它可能是安全的,但没有办法让你知道这是肯定的。 – 2016-08-02 15:46:21
这是免费的吗?我试过但他们要求支付 – 2016-12-07 10:16:35
不知道你是否拥有所有这些设置,但对于我来说,我使用的是PHP和MYSQL。所以我使用PHP类PHPExcel。这需要几乎任何格式的文件,xls,xlsx,cvs,...然后让您读取和/或插入。
所以我做的是将excel加载到phpexcel对象中,然后循环遍历所有行。基于我想要的,我编写了一个简单的SQL插入命令,将excel文件中的数据插入到我的表中。
在前端是一个小工作,但它只是调整一些现有的代码示例。但是,当您拨打电话进行更改时,导入过程简单快捷。
当使用文本文件导入数据时,我遇到了报价问题以及Excel如何格式化数字。例如,我的Excel配置使用逗号作为小数点分隔符而不是点。
现在我使用微软访问 2010打开我的MySql表作为链接表。在那里,我可以简单地将单元格从Excel复制并粘贴到Access。
要做到这一点,首先安装MySql ODBC driver并创建一个ODBC connection。 然后在访问中,在“外部数据”选项卡中,打开“ODBC数据库”对话框并使用ODBC连接链接到任何表。
下面是将电子表格数据导入到不依赖任何额外软件的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外壳执行以下命令:mysql mydatabase < import.sql
其他方式从SQL文件导入可以this Stack Overflow answer找到。
这对我有很大的帮助。谢谢。 – Ionut 2017-06-27 17:44:16
谢谢。我一直在寻找这个解决方案:) – 2018-01-26 15:03:41
这免费的实用工具,使导入Excel电子表格到MySQL表快速和容易http://panofish.net/convert-import-excel-spreadsheets-into-mysql-database/ – panofish 2013-06-13 20:06:12
+1一个新的和不同的想法。处理速度非常慢,它首先读取文件中的每一行,然后上传任何内容。大约需要15分钟导入5.2K行 – Fr0zenFyr 2013-09-20 11:27:16
对于某些电子表格,由于列和行的数量,它可能会很慢。但是,我责怪微软的COM对象库,这是用来阅读电子表格。我的程序以图书馆允许的速度读取电子表格。 MySQL插入速度非常快。如果您可以在导入之前删除不必要的列...可以提供帮助。 – panofish 2014-01-27 21:10:30