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

Excel 导入 mysql

2016-03-03 23:43 661 查看
今天由于项目需要,需要将大量的数据由Excel导入mysql数据库,网上手机一一些资料,发现有的资料自己在实现过程中根本无法实现,开始是编码问题,出现乱码,后来是有的结果无法正常显示。查阅官方文档,只是简单介绍了一下,仍然没能解决,做了一个晚上,特意写篇博客总结一下,跟大家交流讨论一下啊。可以提供解决方法

1,首先解决编码问题,既mysql根excel,txt等的编码必须一直,否则就会出现乱码。这里统一设置为UFT-8.为什么,大家有兴趣可以看这篇博客的介绍。

1)设置mysql的编码,启动mysq,后输入下面的命令

show variables like 'character_set_database'; //显示数据库的现在编码

alter database xxx CHARACTER SET utf8; //xxx为您的数据库名称

运行效果截图所示:



 



2)设置excel的编码为utf8

点击文件---》另存为---工具---web—编码,选择utf8,点击确认。

操作示意图:



 



2,接下来是导入到mysal

1)将excel另存问txt,利用语句 :

load data local infile 'F:\\data\\test.txt' into table testexcel fields terminated by "\t"

lines terminated by '\r\n';

我具体操作老师失败,显示不全,这也是网上找到最多的操作,做了很长时间,还是没成功。

截图所示:



开始推断是终止语句的原因,但试了好几次都没成功,具体原因没有找到。坑啊

2)利用csv文件,根txt差不多,只是导入语句稍作调整,

load data local infile 'F:\\data\\test.csv' into table testexcel fields terminated by "\n"

结果也是没有成功。

3)利用php程序,没有尝试

4)借助软件,官方的excel for mysql ,还有其他很多,但一般是收费的,天国可以找到破解的,挺好用。我用的是Navicat for mysql,操作简单高效。

Excel, txt,csv,xml都可以。


下面以excel为例:

 

 

 

点击连接弹出下面的选项:

 



输入自己的连接名,和数据库的账号和密码点击确定即可。

随后会显示出下面的界面:



选择其中的一个数据库,点击:



选择表,右键,弹出选项框,选择导入向导,进入下面:



选择你要导入的原始数据格式,点击下一步:



第一个为导入的excel文件,表为excel里的工作表,选择一个,进入下一步:



第一个栏名称,既表头的类别,最好用英文,在第一行就选第几行,第一个数据,为要导入的数据的起始行,其他不变,仍然点击下一步:



进入要导入的栏的设置,可以设置数据格式,长度,主键值等,进入下一步:



选择默认的即可,不用操作,更新表达或重新输入,更加说明操作就ok



选择开始,就开始导入数据,一会显示成功,点击关闭,再次刷新,成功看到数据。





5)结合前面的自己试的。

I首先新建一个文本文件,用代码编辑等工具将格式设置为utf8,我用的notepad,这一步一定要先与复制数据。

II将要导入的数据复制,粘贴到里面保存就行。

III,接下来首先创建表格,然后导入。具体的我保存在一个文本文件里,这样便于修改和编辑。

命令行如下:

create table if not exists testexcel (

name varchar(20) not null,

     class varchar(20) not null,

studentId varchar(20) not null,

major varchar(20) not null,

sex enum('男','女') not null,

phonum varchar(20) not null ,

bodyNum varchar(20) not null

     );

    

     load data local infile 'F:\\data\\test.txt' into table testexcel fields terminated by "\t"

lines terminated by '\r\n';

 

select * from testexcel;

运行:

Source   ..\data\*.txt

测试成功。但第一一个名字老是有一个?,不知道原因。

好了,今天就写到这。大家后面做出来给我留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: