使用PhpSpreadsheet将Excel导入到MySQL数据库

https://jingyan.baidu.com/article/dca1fa6f333eb5f1a440523c.html

 

日常开发中,我们经常遇到这样的场景,需要将一个Excel表格数据如客户信息、学生成绩表导入到系统数据库中,然后在系统中进行进一步操作,如给导入的客户群发短信,统计学生成绩排名。PHP导入Excel避免了人工录入信息的麻烦和出错,提高效率。

工具/原料

  • PHP环境

  • MySQL

方法/步骤

  1. 首先我们需要准备一张MySQL表,表名t_student,表结构如下:

    使用PhpSpreadsheet将Excel导入到MySQL数据库

  2. 这是一张学生成绩表,用来存储学生的姓名和语数外三门课程的成绩。

    接着,我们准备excel表格文件,我特意制作了一个Excel文件students.xlsx:

    使用PhpSpreadsheet将Excel导入到MySQL数据库

  3. 然后将Excel文件放置程序应用目录下。当然,实际应用中,我们一般通过web上传到服务器指定目录下,然后再进行导入数据库操作。

  4. 准备工作做好后,我们来开始导入。

    思路很简单:使用PhpSpreadsheet读取Excel表格中的有用信息,然后组装成sql语句,最后批量插入到MySQL表中。我把代码贴出来。

    使用PhpSpreadsheet将Excel导入到MySQL数据库

  5. $worksheet->getCellByColumnAndRow($col, $row)->getValue()可以获取表格中任意单元格数据内容,$col表示单元格所在的列,以数字表示,A列表示第一列,$row表示所在的行。

    我们只需要第三行以后的数据,因此直接从第三行开始循环遍历,获取成绩,组装成SQL语句。

    我们使用批量插入MySQL语句,当然你也可以逐条插入,但是效率没有批量插入高。

    最后执行导入代码,你会发现数据表里有数据了:

    使用PhpSpreadsheet将Excel导入到MySQL数据库

    END