一.用composer安装phpexcel,
composer require phpoffice/phpexcel
//也可以在composer.json文件里 加入 "phpoffice/phpspreadsheet": "^1.15" 然后 composer update
二.php代码
$file=$request->file('file'); //获取上传文件
$info = $file->move( '../public/excellist'); //移动文件到public/excellist文件下(文件名不要用uploads)
if($info){
// 成功上传后 获取上传信息
//实例化
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$inputFileType = 'Xlsx';
$sheetname = 'Sheet1'; //指定excel的工作表1
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
$reader->setLoadSheetsOnly($sheetname);
// Env 报错就在上方加入 use think\facade\Env;
$path=Env::get('ROOT_PATH').'/public/excellist/'.$info->getSaveName();
$spreadsheet = $reader->load($path);
$worksheet = $spreadsheet->getActiveSheet();
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn);
//循环表格 拿取数据写入数据库
for ($row = 2; $row <= $highestRow; $row++) {
$data['name']=$worksheet->getCell('A'.$row)->getValue();
$data['sex']=$worksheet->getCell('B'.$row)->getValue();
$data['addtime']=date('Y-m-d H:i:s',time());
$res=Db::table('user')->insert($data);
}
return json_encode($res);
}else{
// 上传失败获取错误信息
echo $file->getError();
}