实测:向MySql数据库导入excel表数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实测:向MySql数据库导入excel表数据相关的知识,希望对你有一定的参考价值。

  最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦。所以想到是不是可以从用一些现有数据格式的文件导入数据。在网上查了一下,看到有关于将excel的数据导入到mysql的方法。所以将题库数据整理成excel的。 
技术分享

  然后另存为.csv格式的文件。 
  然后在phpmyadmin中选择导入操作。
  但是由于插入的数据出现乱码,失败。 
  查找原因:因为excel默认编码格式为ANSI,而mysql数据库默认的编码方式是utf-8。
  解决办法:我是用editplus将.csv格式的文件打开(打开时将“编码”选择为系统默认即可),然后另存为一份编码为utf-8的文件。(我是只用了editplus进行的这个操作,如果还有其他可行并且方便的软件,朋友们也可以留言交流) 
        
  然后重新执行导入操作。
  所有选项均为默认,导入成功,但是数据表为新建表,并且表明为table 2(该数据库中之前有一张表),并且表的字段名为col1,col2......并且所有字段的类型均为varchar。

技术分享

  检查后发现,在导入数据时,选择完文件后,会有如下提示
技术分享

  勾选上,点击执行。
  这次导入的数据表的字段名就是自己在excel中第一行设置的了。 技术分享


  虽然数据导入到mysql中了,但是和我最初的目的仍有稍许偏差,我是想将excel表中的数据,导入到数据库中对应表中。

  仔细分析后,发现问题可能在于选择导入时,目录级别有问题。 
  前两次选择导入操作的时候,都是在database下操作的。 

  这次在localhost》database》table下选择导入操作。
技术分享 
        
   一上来就报错,不过貌似数据插入的位置对了。根据提示,错误是主键列。我再新建表的时候,主键列设为自增。 
  先将自增属性去掉试试。 
  依然报错。
  再将主键去掉试试。
技术分享
  

   数据终于插入进去了,不过excel表中第一行列名也被当做输入插入到数据库中了。 而且编号是从0开始的,这可能是刚才报错的原因。
   为了找出真正原因,重新测试。将表删除重新建立一张空表。
  打开之前另存为utf-8编码的.csv文件,将列名的一行删除并保存文件。
 技术分享
        
   顺利插入,大功告成,吼吼。 

以上是关于实测:向MySql数据库导入excel表数据的主要内容,如果未能解决你的问题,请参考以下文章

SQLSERVER向MYSQL导入数据

如何把EXCEL整理好的数据表直接导入到MYSQL中

MySQL批量导入Excel数据

13.mysql—将 excel 表导入 mysql 时,时间字段格式问题解决

EasyExcel导入、导出Excel

MYSQL怎么批量导入多个excel文件,字段都是对应的