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

时间:2009-08-21 05:08:00

标签: mysql excel

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

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

Country   |   Amount   |   Qty
----------------------------------
America   |   93       |   0.60

Greece    |   9377     |   0.80

Australia |   9375     |   0.80

13 个答案:

答案 0 :(得分:91)

这是一个简单的在线工具,可以执行此操作,称为sqlizer.io

Screenshot from sqlizer.com

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

答案 1 :(得分:44)

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

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

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

    由''''''''''''''''''''''''''''''''

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

答案 2 :(得分:29)

下面是另一种将电子表格数据导入MySQL数据库的方法,该数据库并不依赖于任何额外的软件。我们假设您要将Excel表导入名为<?php $string="aaaabbbaaaaaabbbb"; $array=str_split($string); $start=0; $end= strlen($string); $indexValue=$array[0]; $result=array(); $resultantArray=array(); while($start!=$end) { if($indexValue==$array[$start]) { $result[]=$array[$start]; } else { $resultantArray[]=implode("", $result); $result=array(); $result[]=$indexValue=$array[$start]; } $start++; } $resultantArray[]=implode("", $result); print_r($resultantArray); 的MySQL数据库的Array ( [0] => aaaa [1] => bbb [2] => aaaaaa [3] => bbbb ) 表。

  1. 选择相关的单元格:

    enter image description here

  2. 粘贴到Mr. Data Converter并选择输出为MySQL:

    enter image description here

  3. 更改表名称和列定义以符合生成的输出中的要求:

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

      mysql

      可以在this Stack Overflow answer

    2. 中找到从SQL文件导入的其他方法

答案 3 :(得分:27)

实际上有几种方法可以将excel文件导入MySQL数据库,并且具有不同程度的复杂性和成功。

  1. Excel2MySQL Navicat 实用程序。完全披露,我是Excel2MySQL的作者。这两个实用程序是免费的,但它们是最简单的选项,并且具有最少的限制。它们还包括其他功能,以帮助将Excel数据导入MySQL。例如,Excel2MySQL会自动创建您的表并自动优化字段数据类型,如日期,时间,浮点数等。如果您赶时间或无法获得其他选项来处理您的数据,那么这些实用程序可能会满足您的需求。

    screenshot of Excel2MySQL

  2. LOAD DATA INFILE :这个受欢迎的选项可能是最具技术性的,需要对MySQL命令执行有所了解。您必须在加载之前手动创建表并使用适当大小的VARCHAR字段类型。因此,您的字段数据类型未进行优化。 LOAD DATA INFILE无法导入超过&#39; max_allowed_pa​​cket&#39;尺寸。需要特别注意以避免导入特殊字符和外部unicode字符的问题。这是我用于导入名为test.csv的csv文件的最新示例。

    enter image description here

  3. phpMyAdmin :首先选择您的数据库,然后选择导入标签。 phpMyAdmin将自动创建您的表并调整VARCHAR字段的大小,但它不会优化字段类型。 phpMyAdmin无法导入超过&#39; max_allowed_pa​​cket&#39;大小

    enter image description here

  4. MySQL for Excel :这是Oracle的免费Excel加载项。这个选项有点单调乏味,因为它使用了一个向导,并且导入很慢并且有大文件的错误,但对于包含VARCHAR数据的小文件来说,这可能是一个不错的选择。字段未经过优化。

    enter image description here

答案 4 :(得分:2)

不确定您是否拥有所有这些设置,但对我来说,我使用的是PHP和MYSQL。所以我使用PHP类PHPExcel。这需要几乎任何格式的文件,xls,xlsx,cvs,......然后让你阅读和/或插入。

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

在前端它是一个小工作,但它只是调整一些现有的代码示例。但是,当您通过拨号进行更改导入时,操作简单快捷。

答案 5 :(得分:1)

最好和最简单的方法是使用&#34; MySQL for Excel&#34;应用程序是oracle的免费应用程序。这个应用程序添加了一个插件excel导出和导入数据到mysql。你可以从here

下载

答案 6 :(得分:0)

有关将Excel 2007导入MySQL并使用正确编码(UTF-8)的分步示例,请搜索此评论:

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

在下一个网址中:

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

答案 7 :(得分:0)

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

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

要执行此操作,请先安装MySql ODBC driver并创建ODBC connection。 然后在访问中,在“外部数据”选项卡中,打开“ODBC数据库”对话框,并使用ODBC连接链接到任何表。

答案 8 :(得分:0)

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

更特别是如果您关注date,datetime数据类型,DocChow可以轻松处理数据类型。如果您正在处理要导入到一个MySQL表中的多个Excel电子表格,DocChow会执行脏工作。

答案 9 :(得分:0)

第1步创建CSV文件

第2步登录到您的mysql服务器

     mysql -uroot -pyourpassword 

第3步 加载您的csv文件

     load data local infile '//home/my-sys/my-excel.csv' into table my_tables fields terminated by ',' enclosed by '"' (Country, Amount,Qty);

答案 10 :(得分:0)

另一个有用的工具是Toad for MySQL,它是MySQL的前端替代品。遗憾的是,Quest不再支持该功能,而是MySQL的出色IDE,带有IMPORT和EXPORT向导,可满足大多数文件类型的需要。

答案 11 :(得分:0)

最快,最简单的方法是将XLS保存为ODS(打开文档的电子表格)并从PhpMyAdmin导入 enter image description here

答案 12 :(得分:0)

如果你不喜欢插件、VBA 和外部工具,我有一个 excel 文件,它使用公式只允许你创建插入/更新。您只需将数据放在单元格上:

enter image description here

另外,文件中有另一个用于创建表的选项卡:

enter image description here

可以在以下链接中找到该文件:

EXCEL FILE