/**
* @param Request $request
* @return mixed
* @time 2018/08/10 11:19:00
* @author wenbin
*/
public function exportUser(Request $request)
{
// 接收上传文件
$upload_file = $request->file('file');
// 获取上传文件类型
$upload_file_type = $upload_file->getClientMimeType();
// 允许上传的文件类型
$allowed_type = ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
// 判断是否是允许的类型
if (!in_array(strtolower($upload_file_type), $allowed_type)) {
return output_error('请选择正确格式的excel文件!');
}
$file_name = $upload_file->path();
$file_type = \PHPExcel_IOFactory::identify($file_name);
$obj_reader = \PHPExcel_IOFactory::createReader($file_type);
$excel = $obj_reader->load($file_name);
// 读取第一个sheet
$sheet = $excel->getSheet(0);
// 获取表格行数
$all_row = $sheet->getHighestDataRow();
// 获取表格列数
$all_column = $sheet->getHighestColumn();
// 读取每一个表格数据
$first_column = ['A' => 'open_id', 'B' => 'nick_name', 'C' => 'head_image', 'D' => 'like_score'];
$cell_values = [];
for ($i = 2; $i <= $all_row; $i++) {
for ($j = 'A'; $j <= $all_column; $j++) {
$address = $j . $i;
$cell_values[$i][$first_column[$j]] = $sheet->getCell($address)->getValue();
}
}
// 写入数据库
$res = ActivityLikeScore::importLikeUser($cell_values);
if ($res) {
return output_data(['msg' => '导入成功!']);
}
return output_error('导入失败!');
}
最后一步插入数据时可以使用分批插入