Excel 导入学生信息
1.前言
有些时候学生信息是按照统一格式记录在 Excel 上的,若有 Excel 导入功能直接将这些信息导入到数据库,就会方便很多,本小节主要介绍一下如何在 ThinkPHP 中使用 phpspreadsheet 三方工具来导入学生信息。
2.phpspreadsheet 简介
phpspreadsheet 是一个用纯 PHP 编写的库,提供了一组类可以读取和写入不同的电子表格文件格式,phpspreadsheet 提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,phpspreadsheet 能用程序实现各种各样的样式的 Excel 表格。
3.安装 phpspreadsheet
使用如下 composer 命令即可开始安装 phpspreadsheet:
composer require phpoffice/phpspreadsheet
如下图所示:

安装完如下图所示:

4.Excel 文件处理
4.1 创建 excel 测试数据文件
为了方便演示,需要先手动创建 excel 文件,文件内容如下图所示:

4.2 创建 Excel 文件上传路由
按照之前第 22 小节文件上传的方式新建路由如下:
//文件上传界面
Route::get('file','file/index');
//文件上传
Route::post('upload','file/upload');
4.3 创建 Excel 文件上传处理方法
制器和文件上传界面方法如下:
public function uploadExcel()
{
$data = $this->request->param();
$file_url = "./upload/" . $data['file_url'];
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_url);
$n = 2;
while (true) {
$name = $spreadsheet->getActiveSheet()->getCell('A' . $n)->getValue();
$age = $spreadsheet->getActiveSheet()->getCell('B' . $n)->getValue();
$id_number = $spreadsheet->getActiveSheet()->getCell('C' . $n)->getValue();
try {
$studentModel = new StudentModel();
$studentModel->name = $name;
$studentModel->age = $age;
$studentModel->id_number = $id_number;
$studentModel->created_at = time();
$studentModel->save();
} catch (\Exception $exception) {
}
if(empty($name) && empty($age) && empty($id_number)){
break;
}
$n++;
}
return $this->success('导入成功');
}
5.视频演示
6.小结
本小节介绍了如何使用 phpspreadsheet 导入 excel 中的数据,然后读取数据到 php 中,再将这些数据插入到数据库,需要注意的是在填写 Excel 数据的时候需要按照统一的格式,数据入库的时候需要处理数据异常的情况,若出现数据异常则可以直接跳过该行继续执行下一行,直到处理行所有数据为空就停止处理,最终达到导入数据的目的。
简介和安装
ThinkPHP 简介
Composer 安装
ThinkPHP 安装和目录介绍
请求和响应
ThinkPHP 路由的使用
ThinkPHP 控制器的使用
ThinkPHP 获取请求信息
ThinkPHP 响应输出
数据库
ThinkPHP 配置数据库
ThinkPHP 数据库操作
ThinkPHP 分页和原生查询
ThinkPHP 事务操作
数据模型
ThinkPHP 获取数据追加字段
ThinkPHP 一对一模型关联
ThinkPHP 一对多模型关联
错误和日志
ThinkPHP 异常处理
ThinkPHP 日志的处理
数据验证
ThinkPHP 请求参数校验
ThinkPHP 路由验证
ThinkPHP 验证码的使用
缓存
ThinkPHP 缓存的使用
ThinkPHP 注册和登录
拓展学习
ThinkPHP 文件上传
ThinkPHP 命令行的使用
ThinkPHP 后台处理数据
实战应用
ThinkCMF 信息管理(一)
ThinkCMF 信息管理(二)
Excel 导入学生信息
Excel 导出学生信息
代码预览
退出