将Excel表中的数据导入MySQL数据库

背景

最近接到交通学院的一个web项目,我的工作是在web页面上做个图表并且定时刷新这个图表,这里使用了Echarts API,关于如何使用,我抽时间再写一篇博客,这里主要记录一下,这个表里面的数据他们提供给我时是一个Excel表,那么我需要将其存储在数据库中,这也给我以启发,我们今后接手项目时,别人给的数据是擦乱无章的,如何整理并结构化存储是我们第一步需要做的。

插曲(Excel表中时间列自增)

由于数据库表中有一列是日期+时间,也就是我们所熟悉的yyyy-MM-dd HH:mm:ss,但是她们中Excel只记录了时间,没有日期部分,这里为了造模拟数据,需要添加日期部分。

  • 第一步
    确定某一个单元格的时间,比如我这里确定了A1单元格的时间,现在想要后面依次增加3秒。
  • 第二步
    将光标定位到A2上,输入
    1
    =TEXT((TEXT(1*A1,"[s]")+3)/(24*60*60),"e-mm-dd hh:mm:ss")

注意这里的A1就是确定的起始时间, +3代表加3秒
随后向下拖动即可。效果如下:

说正事

使用Navicat 导入Excel到MySql数据中

这里使用的MySQL界面化工具是Navicat,不多说,直接干。

  • 准备工作,要确定数据库表的字段名和Excel表表头对应一致,如果不一致,后面导入的时候也可自由匹配!比较麻烦,建议提前处理好。
  • 第一步
    选择Import Wizard
  • 第二步
    选择Excel文件类型, 亲测其他格式的同样可以!
  • 第三步
    Add File,选择需要导入的Excel本地文件
  • 第四步
    勾选
  • 第五步
    这里需要选择的是,表头名在哪一行,数据开始是哪一行。我这里是第2行和第3行
  • 第六步
    选中需要导入数据库哪一张表
  • 第七步
    将Excel表的表头和数据库表的字段名匹配上,如果数据库表的字段和Excel表的表头不匹配,就需要手动匹配,如果一样,这里会自动匹配。
  • 第八步
  • 选择第一个Append,顾名思义,添加到表中原有数据之后。

    遇到坑了

    我一开始导入之后,看到数据库表中有数据了,性喜若狂啊,结果一看

    我去,为毛我的时间全部都变成了1900-01-20,而我本身时间是2018-09-25啊。
    开始百度

    填坑

    首先将时间列数据库表的数据类型,设置为varchar,随后导入,发现不会有错,然后再改回datetime类型,我发现直接利用工具的Design Table改不行,改了之后还是1990-01-20。我也是运气好,换了一种方式,执行sql语句
    1
    ALTER TABLE flow MODIFY time datetime

perfect!!!!
OK 搞定了。

最后

此致,敬礼

~~客官随意,我只是学习怎么配置打赏而已~~