tp5 Excel 批量導(dǎo)入 --- 2018-05-11

//首先要使用composer 安裝擴(kuò)展庫PHPexcel (首先要確定電腦上安裝了composer)

命令:

composer require phpoffice/phpexcel


//引入Excel公共類

vendor("PHPExcel.Classes.PHPExcel");

vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');

vendor('PHPExcel.Classes.PHPExcel.Reader.Excel5');

$objPHPExcel = new \PHPExcel();

$file = request()->file('filename');

$info = $file->validate(['ext' => 'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'uploads/import');//上傳驗(yàn)證后綴名,以及上傳之后移動的地址

if($info){

$exclePath = $info->getSaveName();? //獲取文件名

$file_name = ROOT_PATH . 'public' . DS . 'uploads/import' . DS . $exclePath;? //上傳文件的地址

$objReader =\PHPExcel_IOFactory::createReader('Excel5');

$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');? //加載文件內(nèi)容,編碼utf-8

$excel_array=$obj_PHPExcel->getsheet(0)->toArray();? //轉(zhuǎn)換為數(shù)組格式

array_shift($excel_array);? //刪除第一個數(shù)組(標(biāo)題);

$datas = [];

$data_errors = [];

//處理Excel導(dǎo)入時數(shù)據(jù)為空的情況

foreach($excel_array as $k=>$v) {

if(!empty($v[0] || $v[1] || $v[2])){

$excel_list[] = $v;

}

}

$cn=count($excel_list);

//循環(huán)遍歷,組裝數(shù)據(jù)進(jìn)行入庫

foreach ($excel_list as $k=>$v){

if(!empty($v[0]) && !empty($v[1])){

$wh['job_number'] = $v[0];

$wh['is_deleted'] = '1';

$res_info=db('member')->where($wh)->count();

if($res_info ==0){

$data=array(

'job_number'=>$v[0],

'user_name'=>$v[1],

'department'=>$v[2],

'create_id' =>$admin_id,

'create_time'=>date('Y-m-d H:i:s'),

);

$datas[] = $data;

}

? ? ? }else{

$error_data=array(

'job_number'=>$v[0],

'user_name'=>$v[1],

'department'=>$v[2],

'create_id' =>$admin_id,

'create_time'=>date('Y-m-d H:i:s'),

);

$data_errors[] = $error_data;

}

}

$errors_data = count($data_errors);

$repetition = $cn-$errors_data;

$success=db('member')->insertAll($datas); //批量插入數(shù)據(jù)

if($success){

$cn_fail=count($data_errors);

$content = "批量新增抽獎參與者名單記錄:".json_encode($data);

$this->writelog($admin_id,$content,'4');//4出席成員

$error=$cn-$success;

$error_all = $error-$cn_fail;

$data = array(

'code'=>1,

'message'=>"總{$cn}條,導(dǎo)入成功{$success}條,其中失敗{$cn_fail}條,重復(fù){$error_all}條",

'result'=>$data_errors,

);

return json($data);

}

return json(['code'=>1,'message'=>"總{$cn}條,導(dǎo)入成功0條,其中重復(fù){$repetition}條,失敗{$errors_data}條",'result'=>$data_errors]);

}else{

// 上傳失敗獲取錯誤信息

return json(['code'=>2,'message'=>'導(dǎo)入失敗','result'=>null]);

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 超高速音視頻編碼器用法: ffmpeg [options] [[infile options] -i infile...
    吉兇以情遷閱讀 4,811評論 0 4
  • 起床自己穿衣服, 生活自理需堅(jiān)持。 行走規(guī)范進(jìn)教室, 沒有及時到座位, 躲在門后來觀察。 廣播出操排入隊(duì), 控制速...
    陸惠芳閱讀 109評論 0 0
  • 血虛: 血虛之體的主要表現(xiàn)為:面色萎黃蒼白,唇爪淡白,頭暈乏力,眼花心悸,失眠多夢,大便干燥,婦女經(jīng)水愆期、量少色...
    這是艾兒鹿閱讀 382評論 0 0

友情鏈接更多精彩內(nèi)容