thinkphp5导入excel表
后端
private function checkFileType($file){
if(empty($file['name'])) return false;
if($this->getExtension($file) != 'xlsx' && $this->getExtension($file) != 'xls') return false;
return true;
}
private function getExtension($file)
{
$info = pathinfo($file['name']);
return $info['extension'];
}
public function import(){
set_time_limit (0);
if (IS_POST) {
$file = $_FILES['filename'];
if(!$this->checkFileType($file)){
$this->error('您上传的文件错误!');
}
//上传文件
$file_name = './uploads/excel/'.rand(10000,99999).'.xlsx';
$f = move_uploaded_file($file['tmp_name'],$file_name);
//获取表单上传文件
if($f){
// 引入文件
vendor("PHPExcel.PHPExcel.Reader.Excel2007");
$objPHPExcel = new \PHPExcel_Reader_Excel2007();
$objReader = $objPHPExcel ->load($file_name);
//加载文件内容,编码utf-8
$obj_PHPExcel = $objPHPExcel->load($file_name, $encode = 'utf-8');
//删除文件
@unlink($file_name);
$excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$data = [];
foreach ($excel_array as $k => $v) {
if(intval($v[7]) == 1 && intval($v[8]) == 1){
$level = 5;
}elseif(intval($v[7]) == 1){
$level = 1;
}elseif(intval($v[8]) == 1) {
$level = 4;
}
$username = $v[5];
$pass = $v[6];
$area = $v[1];
$market = $v[2];
$salename = $v[3];
$code = $v[4];
//检测手机号,存在的话修改信息,否则新增
$checkUserName = M('users')->where([
'username' => $username,
'lang' => 'cn'
])->find();
if(empty($checkUserName)) {
$id = M('users')->insertGetId([
'username' => $username,
'password' => func_encrypt($pass),
'password_show' => $pass,
'level' => $level,
'lan' => 'cn',
'reg_time' => time()
]);
M('users_list')->insert([
'users_id' => $id,
'para_id' => 3,
'info' => $area,
'lang' => 'cn',
'add_time' => time(),
'update_time' => time()
]);
M('users_list')->insert([
'users_id' => $id,
'para_id' => 4,
'info' => $market,
'lang' => 'cn',
'add_time' => time(),
'update_time' => time()
]);
M('users_list')->insert([
'users_id' => $id,
'para_id' => 5,
'info' => $salename,
'lang' => 'cn',
'add_time' => time(),
'update_time' => time()
]);
M('users_list')->insert([
'users_id' => $id,
'para_id' => 6,
'info' => $code,
'lang' => 'cn',
'add_time' => time(),
'update_time' => time()
]);
}else{
$id = $checkUserName['users_id'];
M('users')->where([
'username' => $username,
'lang' => 'cn'
])->update([
'password' => func_encrypt($pass),
'password_show' => $pass,
'level' => $level,
'update_time' => time()
]);
M('users_list')->where([
'users_id' => $id,
'lang' => 'cn',
'para_id' => 3
])->update([
'info' => $area,
'update_time' => time()
]);
M('users_list')->where([
'users_id' => $id,
'lang' => 'cn',
'para_id' => 4
])->update([
'info' => $market,
'update_time' => time()
]);
M('users_list')->where([
'users_id' => $id,
'lang' => 'cn',
'para_id' => 5
])->update([
'info' => $salename,
'update_time' => time()
]);
M('users_list')->where([
'users_id' => $id,
'lang' => 'cn',
'para_id' => 6
])->update([
'info' => $code,
'update_time' => time()
]);
}
}
//批量插入数据
$this->success('导入成功');
}
}
return $this->fetch();
}前端
<div class="page">
<div class="fixed-bar">
<div class="item-title"><a class="back" href="{:url('Member/level_index')}" title="返回列表"><i class="fa fa-arrow-circle-o-left"></i></a>
<div class="subject">
<h3>导入会员数据</h3>
<h5></h5>
</div>
</div>
</div>
<!-- 操作说明 -->
<div id="explanation" class="explanation" style="color: rgb(44, 188, 163); background-color: rgb(237, 251, 248); width: 99%; height: 100%;">
<form class="form-horizontal" id="postForm" action="{:url('Member/import')}" method="post" enctype="multipart/form-data">
<div class="ncap-form-default">
<dl class="row">
<dt class="tit">
<label for="level_name"><em>*</em>导入文件</label>
</dt>
<dd class="opt">
<input type="file" name="filename">
<p class="notic"></p>
</dd>
</dl>
<dl class="row">
<a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn" style="margin-left: 135px;">确认提交</a>
</div>
</div>
</form>
</div>
<script type="text/javascript">
// 判断输入框是否为空
function checkForm(){
// if($('input[name=amount]').val() == ''){
// showErrorMsg('消费额度不能为空!');
// $('input[name=amount]').focus();
// return false;
// }
// if($('input[name=discount]').val() == ''){
// showErrorMsg('折扣率不能为空!');
// $('input[name=discount]').focus();
// return false;
// }
layer_loading('正在处理');
$('#postForm').submit();
}
</script>