5分钟

任务4 导入Excel数据到数据库

任务目的

导入Excel数据到数据库,任务包含:

1.生成批量测试数据,在Excel中生成批量测试数据;

2.在MySQL中创建对应表,对应Excel表中数据;

3.使用Navicat将数据导入数据库。

任务步骤

1.生成批量测试数据

  • 新建Excel表,将第一行作为表头,输入如下数据:idnameagesex,如下图所示。
表头
  • 然后选中A2单元格,在编辑栏中输入=ROW()-1,然后按下enter键完成操作。
生成id列数据 1
  • 仍然选中A2单元格,使用Ctrl+C复制此单元格,然后在左侧名称框中输入A2:A100000然后按下enter选中A2-A100000所有单元格,最后使用Ctrl+V粘贴A2单元格内容,完成id列数据的批量生成。
生成id列数据 2
  • 完成效果如下图所示。
生成id列数据 3
  • 同样的,在其它列也进行相同操作。(注意保证行数的一致,本实验Excel中最后行为第100000行,这意味着导入数据库后将出现99999条数据)
    • 其中,B2单元格内容为=CHAR((INT(16+RAND()*38+160)*256)+INT(94*RAND())+160)&CHAR((INT(16+RAND()*38+160)*256)+INT(94*RAND())+160)
    • C2单元格内容为=RANDBETWEEN(1,100);
    • D2单元格内容为=CHOOSE(RANDBETWEEN(1,2),"男","女")
  • 所有数据完成后效果如下图所示,完成后保存即可。本实验中创建的Excel数据文件(test.xlsx)文件保存在桌面(C:\Users\Administrator\Desktop\test.xlsx)。
批量数据

2.在MySQL中创建对应表

  • 完成批量数据的生成后,还需在MySQL数据库中有对应的表接受收这些数据。
  • 回到Navicat软件中,双击【test】连接该数据库,点击【新建表】在此数据库中添加一张表。
新建表1
  • 添加Excel表中对应的表头字段。如下图所示,默认为仅有一条字段,点击【添加字段】即可添加多条字段,通过上移下移调整字段的前后顺序。添加完成后点击【保存】按钮,输入表名(本实验为“User”)后点击【确定】以完成表的创建操作。
  • 注意事项:在id字段中点击【键】以将id字段设置为主键(PRIMARY KEY),如下图所示。另外在添加name以及sex字段时,由于字段为varchar类型,在添加该字段时需要将二者字符集均设置为utf8,否则会使得导入Excel数据时报错。
新建表2
  • 创建完成后,点击左侧test数据库下的【表】,然后双击【User】查看刚创建的User表。
新建表3

3.使用Navicat将数据导入数据库

  • 创建表完成后,点击【导入】打开导入数据窗口,在此选择【Excel】文件,然后点击【下一步】。
导入向导1
  • 在此页面点击【...】选取导入的文件位置(选取test.xlsx,点击【打开】),然后勾选表【Sheet1】,点击【下一步】。
导入向导2
  • 此页面中包含了一些附加选项,可以根据表格数据实际内容进行更改。由于本实验中表头已处于第一行,直接点击【下一步】进入下一个页面配置。
导入向导3
  • 在此页面配置Excel表与MySQL中表的对应关系,然后点击【下一步】。(本实验中仅有一张Sheet1表,故无需进行额外配置,请根据Excel表格实际情况进行配置)
导入向导4
  • 此页面中为Excel表与MySQL表中的字段映射关系,此处将进行自动映射,点击【下一步】进入下一配置项。
导入向导5
  • 此页面中为导入数据到MySQL表中的方式,本实验中MySQL表中并无数据,选择默认模式【追加即可】,然后点击下一步。(其它导入模式可以参照本页面的详细说明,例如:复制的导入方式将先删除MySQL表中所有数据然后再从Excel中导入数据)
导入向导6
  • 配置完成后点击【开始】,Navicat将会对数据进行导入操作,导入完成后点击【关闭】即可。
导入向导7