您的位置:首页 > 数据库 > MySQL

Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,

2015-08-07 02:18 489 查看
Excel连接到MySQL
即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具。这当然不是没有理由的:Excel以其强大丰富的各种功 能,已经成为办公环境中不可或缺的工具。
然而,现在公司正在逐渐地将数据开始存储在远程数据库中,这样可以供企业员工从不同的地方来阅读和修改数据。但是,以前固有的工作流程习惯是很难打破的。当你的老板需要从远端使用Excel以饼图的形势来看一下最近的销售数据的时候,你该怎么办?

许你没有想到,你可以将Excel连接到一个数据库,而且不仅仅限于微软的SQL
Server。实际上Excel可以连接到所有的主流数据库,诸如MySQL、PostgreSQL和Oracle等等,只要该数据库提供ODBC驱动就
可以。在本文中,我们将以MySQL为例,来了解如何将Excel连接到MySQL。

安装MyODBC
ODBC
提供了一种执行几乎所有常规任务的标准方式,诸如数据恢复、删除和选择,这意味着针对不同的数据库,要编写不同的驱动程序来将用户的命令解释成标准的
ODBC标准。MySQL早就有一个特定的ODBC驱动可用,也就是我们所熟知的MyODBC。在每一台你想使用Excel连接到MySQL的计算机上,
你都需要安装MyODBC驱动。
那么,现在首先来下载MyODBC安装程序(http://dev.mysql.com/downloads/connector/odbc)。该安装包只有2.3M,如果你是宽带连接的话,下载应该很快就完成。
一旦你完成下载MyODBC后,点击图标开始安装。如果你没有特殊的安装要求,选择典型安装即可。点击安装按钮开始安装,安装完成后点击完成按钮推出安装程序。

配置MyODBC
如果你的操作系统是Windows 数据源(ODBC)。à管理工具à控制面板à设置àXP的话,你可以按照如下方式打开ODBC终端:开始菜单

1ODBC数据源管理器

点击“Add(增加)”按钮来增加一个新的数据源,并滚动滑动条直到你发现MySQL ODBC驱动项为止。双击该项,开始配置过程。配置窗口如下图所示。

2、增加MySQL数据源

填上各个选项后,点击“Test(测试)”按钮,确认该驱动是否能够与MySQL进行连接。如果你的数据库服务器与Excel在同一台机器的话,使
用“localhost”或“127.0.0.1”作为服务器地址的话,有可能不会生效。那么,你可以使用一个点作为服务器地址,这样该驱动使用命名通道
而不是TCP/IP来连接数据库。如果你要连接到远端的数据库,那么别忘了确保防火墙是否阻挡了你与MySQL连接的端口(通常是3306)。最后,不要
忘了使用一个现有的合法登录帐号。如果你需要做的不仅仅是读取数据,还需要插入和更新数据,那么要注意登录的帐号要具有相应的权限。
一旦测试连接成功后,点击“OK(确认)”按钮,就将在已存在的数据源列表中多一条。接下来,我们将连接Excel到MySQL。

连接ExcelMySQL
为了做这个练习,我们将连接Excel到一个名为contacts的MySQL表,其中包含全国范围内的不同合作伙伴和相关个人的联系信息。该MySQL表结构如下:

create table contacts (rowid smallint unsigned not null auto_increment,

firstname varchar(20) not null,

lastname varchar(30) not null,

email varchar(55) not null,

title varchar(20) not null,

company varchar(30) not null,

phone char(10) not null,

revenue decimal(5,2) not null,

primary key(rowid));

我已经在这些表中填充了一些示例数据,你将不久在Excel中看到它们。为了从Excel中管理这些数据,按如下操作:

1、打开Excel,转到菜单上的“数据”,然后选择导入外部数据,导入数据。
2、从出现的窗口中,选择“连接到新数据源.odc”。
3、一个标题为“欢迎使用数据连接向导”的窗口出现,从这个窗口中选择“ODBC DSN”。
4、从标题为“连接到ODBC数据源”的窗口中,选择你刚才创建的MySQL ODBC数据源。
5、从标题为“选择数据库和表”的窗口中,选择相应的你要连接的数据库和表,如图3所示,选择好表后,点击下一步。
6、在标题为“保存数据连接文件并结束”的最后一个窗口中,选择结束按钮。
7、你将被询问在什么地方存储这个数据,你可以选择一个已有的工作表或者指定创建一个新的工作表中。选择后点击确认(OK)按钮。

3、连接到一个指定的数据库和表

如果一切顺利的话,你所需要的信息将会显示在Excel中,如图4所示。

4、在Excel中查看contacts数据库

这样,用户就可以开始自由的创建各种图表了。例如,创建一个饼图是小菜一碟的事情,如图5所示。

5、每一个联系人的收入饼图

如果你需要的数据跨表的话,你可以尝试在数据库建立一个视图,然后使用Excel连接该视图。
MySQL的MyODBC驱动为客户将数据库连接到不同的客户端应用程序敞开了一扇大门。我希望这篇短文能让你举一反三,实现类似的操作。

将Excel数据导入MySql

1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。),假如存到“D:\data.txt”这个位置里。

2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令

load data local infile 'D:\data.txt' into table exceltomysql fields terminated by '\t';

进行导入操作

具体还是参考高手的:

http://hi.baidu.com/harite/blog/item/6a5fb9de55e6f258ccbf1adf.html

非常感谢,自己也做个笔记

手动进行Excel数据和MySql数据转换

今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛~~便帮助他完成了数据从Excel到MySql的转化。记下具体步骤分享给大家,也免得大家到网上到处乱找了。

假如要把如图所示的Excel表格导入到MySql数据库中,如图:




步骤一:

选取要导入的数据快儿,另外要多出一列,如下图:



步骤二:

将选中的数据快儿拷贝到一个新建的表格工作薄,然后“另存为” -》“文本文件(制表符分割)(*.txt)”,假如存到“D:\data.txt”这个位置里。如图:



步骤三:

根据要导入的数据快儿建立MySql数据库和表,然后使用命令

load data local infile 'D:\data.txt' into table exceltomysql fields terminated by '\t';

进行导入操作。如下图:



现在数据已经全部导入到MySql里了,

让我们来select一下吧,如图:



到此,数据由Excel到MySql的转换已经完成。

下面说下,数据从MySql到Excel的转化,其过程其实还是借助那个“制表符分割”的文本文件。

将如要将这个表中的男生信息导入到Excel中,可以这样。

select * into outfile 'D:\man.txt' from exceltomysql where xingbie="男";

如图:



这样,表中所有男生的信息都被输出到以制表符分割,'\n'结尾的文本文件D:\man.txt文件中。

你可以打开Excel,然后选择“数据”->“导入外部数据”->“导入数据”,选中“D:\man.txt”,一路确定就行了。

最后祝各位好运~~Yours Harite.K@gmail.com

MySQL for Excel是包含在MySQL Installer中的一个工具,允许开发者通过微软的Excel直接操作MySQL数据库,比如:
导出MySQL数据到Excel
导入Excel数据到MySQL现有数据表或新建数据表
直接在Excel中编辑MySQL数据
1.1.1版本主要修复了一些bug,详细信息:MySQL for Excel 1.1.1 GA has been released
下载:http://dev.mysql.com/downloads/installer/


懒人懒办法:把Excel数据导入到MySQL中

别跟我说什么ODBC导入啦写个小脚本导入啦或者是用其他什么软件,虽然灵活但是有时候的确挺折腾人。
打开Excel,处理好你需要的列,把不需要的列都删掉。
另存为CSV文件。
特别注意一点:如果你的MySQL默认编码方式是UTF-8的话需要用Editplus等软件把CSV文件另存为UTF-8编码格式,因为Excel默认编码格式是ANSI,MySQL在导入中文数据的时候很可能会出Warning:1366 Incorrect string value

然后到MySQL里建表,字段的顺序要跟Excel里的完全一致。(不要建其他任何列,包括id)
然后运行如下语句:
load data local infile '[你的csv文件路径]' into table [表名] fields terminated by ',';

例如:load data local infile 'E:\\Dev\\a.csv' into table t1 fields terminated by ',';
注意csv文件的分隔符是逗号,所以最后terminated by之后跟的是逗号。如果是制表符,则用
例如:load data local infile 'E:\\Dev\\a.csv' into table t1 fields terminated by '\t';

这一步记得查看log,必须没有warning才算成功。
最后Alter Table,加入id列(primary key,not null, auto increment)和其他列即可。


http://wenku.baidu.com/view/ece4ace06137ee06eef91814.html
http://wenku.baidu.com/view/2cb3c0d87f1922791688e8af.html
http://wenku.baidu.com/view/b6cf173167ec102de2bd8992.html

mysql导出excel文件的几种方法
方法一
php教程用mysql的命令和shell
select * into outfile './bestlovesky.xls' from bestlovesky where 1 order by id desc  limit 0, 50;

方法二 把bestlovesky.xls以文本方式打开,然后另存为,在编码选择ansi编码,保存
echo "select id,name from bestlovesky where 1 order by id desc limit 0, 50;"| /usr/local/mysql/bin/mysql -h127.0.0.1-uroot -p123456 > /data/bestlovesky.xls

方法三
mysql your_database  -uroot  -p  -e  "select   *   from   test.table2 "   >   /home/test.xls
用sz命令将文件下载到本地,打开如果中文乱码,
因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择,1.在服务器端使用iconv来进行编码转换
iconv -futf8 -tgb2312 -otest2.xls test.xls
如果转换顺利,那么从server上下载下来就可以使用了。
转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误,
先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。
把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: