我的小站传送: 将Excel表中的数据导入MySQL数据库
背景
最近接到交通学院的一个web项目,我的工作是在web页面上做个图表并且定时刷新这个图表,这里使用了Echarts API,关于如何使用,我抽时间再写一篇博客,这里主要记录一下,这个表里面的数据他们提供给我时是一个Excel表,那么我需要将其存储在数据库中,这也给我以启发,我们今后接手项目时,别人给的数据是擦乱无章的,如何整理并结构化存储是我们第一步需要做的。
插曲(Excel表中时间列自增)
由于数据库表中有一列是日期+时间,也就是我们所熟悉的yyyy-MM-dd HH:mm:ss,但是她们中Excel只记录了时间,没有日期部分,这里为了造模拟数据,需要添加日期部分。
-
第一步
确定某一个单元格的时间,比如我这里确定了A1单元格的时间,现在想要后面依次增加3秒。
image - 第二步
将光标定位到A2上,输入
=TEXT((TEXT(1*A1,"[s]")+3)/(24*60*60),"e-mm-dd hh:mm:ss")
注意这里的A1就是确定的起始时间, +3代表加3秒
随后向下拖动即可。效果如下:
image
说正事
使用Navicat 导入Excel到MySql数据中
这里使用的MySQL界面化工具是Navicat,不多说,直接干。
- 准备工作,要确定数据库表的字段名和Excel表表头对应一致,如果不一致,后面导入的时候也可自由匹配!比较麻烦,建议提前处理好。
-
第一步
选择Import Wizard
image -
第二步
选择Excel文件类型, 亲测其他格式的同样可以!
image -
第三步
Add File,选择需要导入的Excel本地文件
image -
第四步
勾选
image -
第五步
这里需要选择的是,表头名在哪一行,数据开始是哪一行。我这里是第2行和第3行
image -
第六步
选中需要导入数据库哪一张表
image -
第七步
将Excel表的表头和数据库表的字段名匹配上,如果数据库表的字段和Excel表的表头不匹配,就需要手动匹配,如果一样,这里会自动匹配。
image - 第八步
-
选择第一个Append,顾名思义,添加到表中原有数据之后。
image
遇到坑了
我一开始导入之后,看到数据库表中有数据了,性喜若狂啊,结果一看
image
我去,为毛我的时间全部都变成了1900-01-20,而我本身时间是2018-09-25啊。
开始百度
填坑
首先将时间列数据库表的数据类型,设置为varchar,随后导入,发现不会有错,然后再改回datetime类型,我发现直接利用工具的Design Table改不行,改了之后还是1990-01-20。我也是运气好,换了一种方式,执行sql语句
ALTER TABLE flow MODIFY time datetime
perfect!!!!
OK 搞定了。
最后
此致,敬礼
网友评论