//首先引入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="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;
}