public function excel()
{
vendor("PHPExcel.Classes.PHPExcel");
vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
vendor('PHPExcel.Classes.PHPExcel.Reader.Excel5');
$file_url = input('file_url');
$file_name = input('file_name');//文件名
$file_url = './upload/'.$file_url;//文件url
$extension = cmf_get_file_extension($file_name);//文件扩展名
if(empty($file_url)){
$this->error('请先上传excel!');
}
if($extension == 'xlsx'){
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file_url, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else if($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_url, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else{
$this->error('请上传Excel格式的文件!','');
}
$excel_array=$objPHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$data = [];
$categorys = Db::name('portal_category')->select();
foreach($excel_array as $k=>$v) {
$data[$k]['post_title'] = $v[0]; // 手机号
for( $i=0; $i<strlen($v[0]); $i++ ){
$data[$k]['tel_'.$i] = substr($v[0], $i, 1);
}
foreach ($categorys as $key => $value) {
if ($value['name'] == $v[1]) {
$data[$k]['category_id'] = $value['id']; // 分类
}
}
if ($v[2]=='普通') {
$data[$k]['card_type'] = 2; // 普通
}elseif($v[2]=='靓号'){
$data[$k]['card_type'] = 1; // 靓号
}
$data[$k]['post_money'] = $v[3]; // 价格
$data[$k]['post_ascription'] = $v[4]; // 归属地
$data[$k]['post_operators'] = $v[5]; // 运营商
$data[$k]['post_content'] = $v[6]; // 详情
$data[$k]['create_time'] = time(); // 创建时间
$data[$k]['update_time'] = time(); // 更新时间
$data[$k]['published_time'] = time(); // 发布时间
$data[$k]['user_id'] = cmf_get_current_admin_id(); // 用户id
$result = Db::name('portal_post')->where(['post_title' => $v[0]])->find();
if ($result) {
$rs = Db::name('portal_post')->where(['id'=>$result['id']])->update($data[$k]);//如果已有这条数据就更新这条数据
}else{
$rs = Db::name('portal_post')->insert($data[$k]);//如果为空就添加这条数据
}
}
// echo "<pre/>";
// print_r($data);die;
// Db::name('portal_post')->insertAll($data)
if($rs){
unlink($file_url);//这里是删除上传后的文件
$this->success('导入数据成功!');
} else {
$this->error('导入数据失败!');
}
}