如何将excel文件导入到MySQL数据库中

任何人都可以解释如何将Microsoft Excel文件导入到MySQL数据库?

例如,我的Excel表格如下所示:

Country | Amount | Qty ---------------------------------- America | 93 | 0.60 Greece | 9377 | 0.80 Australia | 9375 | 0.80 

提前致谢。

FERO

  1. 将其导出为某种文本格式。 最简单的可能是制表符分隔的版本,但CSV也可以。

  2. 使用加载数据function。 请参阅http://dev.mysql.com/doc/refman/5.1/en/load-data.html

  3. 查看页面的一半,因为它会为制表符分隔的数据提供一个很好的示例:

    “\ t”字段已被“'ESCAPED BY'\'封闭

  4. 检查你的数据。 有时引用或转义有问题,您需要调整您的源代码,导入命令 – 或者通过SQL后处理可能会更容易。

有一个简单的在线工具,可以做到这一点,称为sqlizer.io 。

从sqlizer.com截图

你上传一个XLSX文件,input一个工作表名称和单元格范围,它将生成一个CREATE TABLE语句和一堆INSERT语句,将所有的数据导入到一个MySQL数据库中。

实际上有几种方法可以将不同程度的复杂性和成功导入到MySQL数据库中。

  1. Excel2MySQLNavicat实用程序。 充分的披露,我是Excel2MySQL的作者。 这两个工具不是免费的,但它们是最简单的select,并且具有最less的限制。 它们还包含其他function来帮助将Excel数据导入MySQL。 例如,Excel2MySQL会自动创build表并自动优化字段数据types,如date,时间,浮点数等。如果您急于或无法使用其他选项来处理数据,那么这些实用程序可能会满足您的需求。

    Excel2MySQL的截图

  2. LOAD DATA INFILE :这个stream行的选项可能是最具技术性的,需要对MySQL命令的执行有所了解。 您必须在加载之前手动创build表,并使用适当大小的VARCHAR字段types。 因此,您的字段数据types未被优化。 LOAD DATA INFILE无法导入超过“max_allowed_pa​​cket”大小的大文件。 需要特别注意避免导入特殊字符和外来unicode字符的问题。 以下是我用来导入名为test.csv的csv文件的最近示例。

    在这里输入图像说明

  3. phpMyAdmin :首先select您的数据库,然后select导入选项卡。 phpMyAdmin会自动创build你的表并且设置你的VARCHAR字段的大小,但是它不会优化字段types。 phpMyAdmin无法导入超过“max_allowed_pa​​cket”大小的大文件。

    在这里输入图像说明

  4. MySQL for Excel :这是一个免费的Excel加载项。 这个选项有点乏味,因为它使用了一个向导,导入速度很慢,而且大文件也有问题,但是对于VARCHAR数据的小文件来说,这可能是一个不错的select。 字段没有优化。

    在这里输入图像说明

以下是将电子表格数据导入到不依赖于任何额外软件的MySQL数据库的另一种方法。 假设您要将Excel表导入名为mydatabase的MySQL数据库的sales表中。

  1. select相关的单元格:

    在这里输入图像说明

  2. 粘贴到先生数据转换器,并select输出为MySQL:

    在这里输入图像说明

  3. 更改表名和列定义以适应您在生成输出中的要求:

 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); 
  1. 如果您正在使用MySQL Workbench或已经从命令行login到mysql ,则可以直接从步骤3执行生成的SQL语句。 否则,将代码粘贴到一个文本文件(例如import.sql )中,并从Unix shell执行这个命令:

    mysql mydatabase < import.sql

    其他从SQL文件导入的方法可以在这个堆栈溢出的答案中find 。

不知道如果你有所有这些设置,但对我来说,我正在使用PHP和MYSQL。 所以我使用PHP类PHPExcel。 这需要几乎任何格式的文件,xls,xlsx,cvs,…然后让您读取和/或插入。

所以我所做的是将excel加载到phpexcel对象中,然后循环遍历所有行。 基于我想要的,我写了一个简单的SQL插入命令,将excel文件中的数据插入到我的表中。

在前端这是一个小的工作,但它只是调整了一些现有的代码示例的问题。 但是,当您拨打电话进行更改时,导入操作简单快捷。

最好和最简单的方法是使用“MySQL for Excel”应用程序,这是一个免费的应用程序从甲骨文。 这个应用程序添加了一个插件来出口和导入数据到MySQL。 你可以从这里下载

有关使用正确编码 (UTF-8) 将Excel 2007导入到MySQL的步骤示例,请search以下注释:

“Mike Laird发表于2010年10月13日上午12:50”

在下一个url:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

当使用文本文件导入数据时,我遇到了报价问题以及Excel如何格式化数字。 例如,我的Excelconfiguration使用逗号作为小数点分隔符而不是点。

现在我使用Microsoft Access 2010以链接表的forms打开我的MySql表。 在那里,我可以简单地复制和粘贴Excel中的单元格到Access。

为此,首先安装MySql ODBC驱动程序并创build一个ODBC连接 。 然后在访问中,在“外部数据”选项卡中,打开“ODBC数据库”对话框,并使用ODBC连接链接到任何表。

您可以使用DocChow ,一个非常直观的GIU将Excel导入到MySQL中,并且在大多数常用平台(包括Linux)上都是免费的。

更特别的是,如果您关心date和date时间数据types, DocChow可以轻松处理数据types。 如果您正在使用多个要导入到一个MySQL表格中的Excel电子表格,DocChow会执行一些肮脏的工作。