//首先引入bootstrap 来作为样式 <button class="btn btn-info" type="button" id="import" data-toggle="modal" data-target="#myModal">导入</button> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="myModalLabel">导入</h4> </div> <div class="modal-body"> <div>导入格式如下 <a href="/public/yuangongmoban.xls" download="员工导入模板.xls">下载模板</a> </div> <table class="table table-bordered" id="contents" > <tr> <th>编号</th> <th>姓名</th> <th>手机号</th> <th>员工分组</th> <th>员工级别</th> <th>是否删除</th> </tr> <tr> <td>1</td> <td>小刘</td> <td>18888888888</td> <td>冲锋组</td> <td>组长</td> <td></td> </tr> </table> <div id="rename" style="color: red;"> </div> <div id="unname" style="color: red;"> </div> <form action="#" method="post" id="file-form" enctype="multipart/form-data"> <div class="form-group"> <label class=" control-label" style="width:85px;">上传文件<sup>*</sup></label> <div class=""> <input type="file" id="avatarUpload" name="excel" style="display:block;" /> </div> </div> </form> </div> <div class="modal-footer"> <a class="btn btn-default" data-dismiss="modal" id="file-import">确定</a> <!--<button type="button" class="btn btn-danger" id="editUser">确定</button>--> </div> </div> </div> </div> <script> var update_arr = []; //导入 $(‘#file-import‘).on(‘click‘,function(){ var fileFlag = false; fileFlag = $("input[name=‘excel‘]").val(); if(!fileFlag) { alert( ‘请选择文件!‘); return false; } // 创建 var form_data = new FormData(); // 获取文件 var file_data = $("input[name=‘excel‘]").prop("files")[0]; // 把所以表单信息 form_data.append("excel", file_data); $.ajax({ url:"{:U(‘Employee/import‘)}", type:‘post‘, dataType:‘json‘, processData: false, contentType: false, data: form_data, success:function(data){ console.log(data) if(data.resCode == 1){ $("#contents tr:gt(0)").remove(); $("#contents tbody").append(data.resData.text); if(data.resData.renum){ $("#rename").html(‘系统删除重复人员:‘+data.resData.rename+‘共计人数:‘+data.resData.renum); } $("#unname").html(‘系统删除不合格人员:‘+data.resData.unname+‘共计人数:‘+data.resData.unnum+‘<button type="button" class="btn btn-danger addUser" style="margin-left:230px;" id="addUser">确认添加</button>‘) update_arr = data.resData.data }else{ alert(data.msg) } }, error:function(data){ console.log(data,111) } }) return false; }); //删除 function getDel(k,key){ delete update_arr[key]; $(k).parent().remove(); } // 最后确定上传 $("#unname").delegate(‘.addUser‘, ‘click‘, function () { $.ajax({ url:"{:U(‘Employee/add_user_all‘)}", type:‘post‘, dataType:‘json‘, data:{"data":update_arr}, success:function(data){ if(data.resCode == 1){ alert(data.resMsg) window.location.reload() }else{ alert(data.resMsg) } }, error:function(data){ console.log(data,111) } }) }); function repeat(a) { $(‘#modal_volume‘+a).fadeIn(); } function repeat2(a) { $(‘#modal_volume‘+a).fadeOut(); } $("#avatarUpload").change(function() { var extArray = [‘.xlsx‘,‘.xls‘]; var file = event.currentTarget.files[0]; var url = window.URL.createObjectURL(file); var name = file[‘name‘]; var ext = name.substr(name.lastIndexOf(‘.‘)); if($.inArray(ext,extArray)<0){ alert(‘上传格式错误!目前只支持xlsx ,xls‘); $("#avatarUpload").val(""); return false; } }); </script>
// tp3 代码 public function add_user_all() { $add_res = I(‘post.‘); $userres = $this->getuser_res(); foreach ($add_res[‘data‘] as $k => $v) { if(!isset($res[$v[‘mobile‘]])){ $data[‘user_nicename‘] =$v[‘name‘]; $data[‘phone‘] = $v[‘mobile‘]; $data[‘level‘] = $v[‘targets‘]; $data[‘grouping‘] = $v[‘department‘]; $data[‘isemployee‘] = 1; $data[‘shopid‘] = session(‘ADMIN_ID‘); $data[‘changetime‘] = time(); $add[] = $data; } } $allID = $this->users_model->addAll($add); if($allID){ echo $this->ReturnArray(‘1‘,‘‘,‘导入成功!‘); }else{ echo $this->ReturnArray(‘2‘,‘‘,‘导入失败!‘); } } /** * 导入 */ public function import(){ header("Content-Type:text/html;charset=UTF-8"); $department = $this->department->field(‘name,id‘)->where("is_del = 0 and shopid = ". session(‘ADMIN_ID‘))->select(); foreach ($department as $k => $v) { $newdepartment[$v[‘id‘]] = $v[‘name‘]; } $departments = $this->newtargets; $name = substr(strrchr($_FILES[‘excel‘][‘name‘], ‘.‘), 1); $file = $_FILES[‘excel‘][‘tmp_name‘]; $data = $this->excel($name,$file); if(!$data){ echo $this->ReturnArray(‘2‘,‘‘,‘文件格式错误!‘); } $text = ‘‘; $res = $this->getuser_res(); foreach($data as $k => &$v){ $numtarges = (int)$v[‘targets‘]; $numdepartment = (int)$v[‘department‘]; // $department = $num = $k +1; //判断是否重复 if(!isset($res[$v[‘mobile‘]])){ if( preg_match("/^1[345789]\d{9}$/", $v[‘mobile‘])){ $text .= ‘<tr> <td>‘.$num.‘</td> <td>‘.$v[‘name‘].‘</td> <td>‘.$v[‘mobile‘].‘</td> <td>‘.$newdepartment[$numtarges].‘</td> <td>‘.$departments[$numdepartment].‘</td> <td onClick="getDel(this,‘.$k.‘)" class="staff_del">删除</td> </tr>‘; }else{ //不合格数据 $unname .= $v[‘name‘].‘,‘; $unnum = $unnum+1; unset($data[$k]); } }else{ //重复数据 $rename .= $v[‘name‘].‘,‘; $renum = $renum+1; unset($data[$k]); } } $return[‘text‘] = $text; $return[‘rename‘] = $rename; $return[‘unname‘] = $unname; $return[‘renum‘] = $renum; $return[‘unnum‘] = $unnum; $return[‘data‘] = $data; if($return){ echo $this->ReturnArray(‘1‘,$return,‘成功‘);die; } echo $this->ReturnArray(‘3‘,‘‘,‘文件为空!‘); die; // $allID = M(‘user‘)->addAll($data); // if($allID){ // return $this->ajaxReturn([‘code‘=>1,‘msg‘=>‘导入成功‘]); // } // $this->ajaxReturn([‘code‘=>-2,‘msg‘=>‘导入失败‘]); } public function getuser_res() { $nowuser = $this->users_model->field(‘phone‘)->where( "shopid=".session(‘ADMIN_ID‘)." and isemployee =1 ")->select(); $nowuser= array_map("array_shift",$nowuser); return array_flip($nowuser); //键值对翻转 } /** * 读表格信息 */ public function excel($name,$files){ //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 vendor("PHPExcel.PHPExcel"); //创建PHPExcel对象,注意,不能少了\ $PHPExcel=new \PHPExcel(); if ($name == ‘xls‘) { //如果excel文件后缀名为.xls,导入这个类 vendor("PHPExcel.PHPExcel.Reader.Excel5"); $PHPReader=new \PHPExcel_Reader_Excel5(); } if ($name == ‘xlsx‘) { //如果excel文件后缀名为.xlsx,导入这下类 vendor("PHPExcel.PHPExcel.Reader.Excel2007"); $PHPReader=new \PHPExcel_Reader_Excel2007(); } //载入文件 $PHPExcel=$PHPReader->load($files); $currentSheet=$PHPExcel->getSheet(0); $allColumn=$currentSheet->getHighestColumn(); $allRow=$currentSheet->getHighestRow(); //循环读取数据 for($currentRow=3;$currentRow<=$allRow;$currentRow++){ $arr[‘name‘] = $PHPExcel->getActiveSheet()->getCell(‘A‘.$currentRow)->getValue(); $arr[‘mobile‘] = $PHPExcel->getActiveSheet()->getCell(‘B‘.$currentRow)->getValue(); $arr[‘targets‘] = $PHPExcel->getActiveSheet()->getCell(‘C‘.$currentRow)->getValue(); $arr[‘department‘] =$PHPExcel->getActiveSheet()->getCell(‘D‘.$currentRow)->getValue(); $data[] =$arr; } return $data; }
原文:https://www.cnblogs.com/yanyanyanyanliu/p/11089613.html