向MySql数据库导入excel表数据

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

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

向MySql数据库导入excel表数据

  检查后发现,在导入数据时,选择完文件后,会有如下提示
向MySql数据库导入excel表数据

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

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

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

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

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

上一篇:Python:XXX missing X required positional argument: 'self'


下一篇:Calico在Kubernetes中的搭建