任何人都可以解释如何将Microsoft Excel文件导入MySQL数据库吗?
例如,我的Excel表格如下所示:
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
答案 0 :(得分:91)
这是一个简单的在线工具,可以执行此操作,称为sqlizer.io。
您上传一个XLSX文件,输入工作表名称和单元格范围,它将生成一个CREATE TABLE语句和一堆INSERT语句,将您的所有数据导入MySQL数据库。
答案 1 :(得分:44)
将其导出为某种文本格式。最简单的可能是制表符分隔的版本,但CSV也可以正常工作。
使用加载数据功能。请参阅http://dev.mysql.com/doc/refman/5.1/en/load-data.html
查看页面的一半,因为它将为制表符分隔数据提供一个很好的示例:
由''''''''''''''''''''''''''''''''
检查您的数据。有时引用或转义存在问题,您需要调整源代码,导入命令 - 或者通过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
)
表。
选择相关的单元格:
粘贴到Mr. Data Converter并选择输出为MySQL:
更改表名称和列定义以符合生成的输出中的要求:
sales
如果您正在使用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
答案 3 :(得分:27)
实际上有几种方法可以将excel文件导入MySQL数据库,并且具有不同程度的复杂性和成功。
Excel2MySQL 或 Navicat 实用程序。完全披露,我是Excel2MySQL的作者。这两个实用程序是免费的,但它们是最简单的选项,并且具有最少的限制。它们还包括其他功能,以帮助将Excel数据导入MySQL。例如,Excel2MySQL会自动创建您的表并自动优化字段数据类型,如日期,时间,浮点数等。如果您赶时间或无法获得其他选项来处理您的数据,那么这些实用程序可能会满足您的需求。
LOAD DATA INFILE :这个受欢迎的选项可能是最具技术性的,需要对MySQL命令执行有所了解。您必须在加载之前手动创建表并使用适当大小的VARCHAR字段类型。因此,您的字段数据类型未进行优化。 LOAD DATA INFILE无法导入超过&#39; max_allowed_packet&#39;尺寸。需要特别注意以避免导入特殊字符和外部unicode字符的问题。这是我用于导入名为test.csv的csv文件的最新示例。
phpMyAdmin :首先选择您的数据库,然后选择导入标签。 phpMyAdmin将自动创建您的表并调整VARCHAR字段的大小,但它不会优化字段类型。 phpMyAdmin无法导入超过&#39; max_allowed_packet&#39;大小
MySQL for Excel :这是Oracle的免费Excel加载项。这个选项有点单调乏味,因为它使用了一个向导,并且导入很慢并且有大文件的错误,但对于包含VARCHAR数据的小文件来说,这可能是一个不错的选择。字段未经过优化。
答案 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发表”
在下一个网址中:
答案 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)
答案 12 :(得分:0)
如果你不喜欢插件、VBA 和外部工具,我有一个 excel 文件,它使用公式只允许你创建插入/更新。您只需将数据放在单元格上:
另外,文件中有另一个用于创建表的选项卡:
可以在以下链接中找到该文件: