参考网址
https://blog.csdn.net/haibo0668/article/details/78320500
前台用的 layui 的组件
<tr>
<td class="form_td border-none td_bot">上传文件</td>
<td class="border-none td_bot">
<div class="position-rel">
<button type="button" class="layui-btn" id="test3"><i class="layui-icon"></i>上传文件</button>
</div>
</td>
</tr>
js 中
upload.render({
elem: '#test3'
,url: "{:url('index/excel/import')}" //改成您自己的上传接口
,accept: 'file' //普通文件
// ,exts: 'zip|rar|7z'
,exts: 'xls|xlsx'
// ,size: 50
,done: function(res){
layer.msg('上传成功');
file_code = res.code;
file_id = res.id;
}
});
控制器中
public function excel_import(){
import('PHPExcel/Classes/PHPExcel', EXTEND_PATH);//方法二
// vendor("PHPExcel.PHPExcel"); //方法一
$objPHPExcel = new \PHPExcel();
//获取表单上传文件
$file = request()->file('file');
$data['uin'] = '111';
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads/exam');
$filename = $file->getInfo()["name"];
$path = ROOT_PATH . 'public' . DS . 'uploads/exam/'.$info->getSaveName();
$objReader=\PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel=$objReader->load($path,$encode = 'utf-8');//$file_url即Excel文件的路径
// 如果表格中为空或者只有一行,count($sheet) 为 1
$sheet = $objPHPExcel->getsheet(0)->toArray(); //转换为数组格式
// $sheet1=$objPHPExcel->getSheet(0); //获取第一个工作表
// $highestRow = $sheet1->getHighestRow(); //取得总行数
// $highestColumn=$sheet->getHighestColumn(); //取得总列数
$dd = [];
if(count($sheet) == 1){
if(empty($sheet[0][0])){ // 为空文件时
return json_encode(["code"=>403,'msg'=>'操作失败空文件']);
}else{ // 只有1行有值时
$res = Db('')->insertGetId(['tel_ph'=>json_encode($sheet[0])]);
// 同时返回新增的id
return json_encode(["code"=>200,'id'=>$res,'msg'=>'操作成功']);
}
}else{
foreach($sheet as $k=>$v) {
$dd[] = $v[0]; // 转成数组
}
$res = Db('')->insertGetId(['tel_ph'=>json_encode($dd)]);
return json_encode(["code"=>200,'id'=>$res,'msg'=>'操作成功']);
}
}else{
// 上传失败获取错误信息
return json_encode(["code"=>403,'msg'=>'操作失败']);
}
}
引入的文件