把大象装冰箱大概分四步,提供核心思路代码
1 tp
框架导入phpoffice/phpexcel
包
composer require phpoffice/phpexcel
2 上传文件名为excel.xlsx
的文件并存储在了public/storage/xlsx
目录下
$file = request()->file('excel');
$file->getOriginalExtension() == 'xlsx'
$saveName = Filesystem::disk('public')->putFile('xlsx', $file);
$filePath = "./storage/" . str_replace('\\', '/', $saveName);
3 通过下面代码的处理,得到一个二维数组
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$obj_PHPExcel =$objReader->load($filePath, $encode = 'utf-8'); // 加载文件内容,编码utf-8
$excel_array=$obj_PHPExcel->getsheet(0)->toArray(); // 转换为数组格式
array_shift($excel_array); // 删除第一个数组(标题);
$data = []; // 数据库需要的二维数组
foreach ($excel_array as $key => $value) {
// 正则去除多余空白字符
$data[$key]['username'] = preg_replace('/\s+/', '', $value['0']);
$data[$key]['password'] = md5(preg_replace('/\s+/', '', $value['1']));
}
4 通过类似下面代码把数据写入数据库
Db::table($tableName)->insertAll($data);