TP5 引入PHPEXCEl类

TP5 引入PHPEXCEl类_第1张图片


public function BatchAddingUsers(){
    //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二
    vendor("PHPExcel.PHPExcel"); //方法一
    $objPHPExcel = new \PHPExcel(); 

    //获取表单上传文件
    $file = request()->file('excel');
    $info = $file->validate(['size'=>95678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');
    if($info){
        $exclePath = $info->getSaveName();  //获取文件名
        $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   //上传文件的地址
        $objReader =\PHPExcel_IOFactory::createReader('Excel5');
        $obj_PHPExcel =$objReader->load($file_name);  //加载文件内容,编码utf-8


        //输出为数组
        $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式

        /*进行数据清洗*/
        $data1=$excel_array[0];//键数组
        array_shift($excel_array);//值数组(excel--array)

        $objArray=[];//定义目标数组(最终要插入数据库的那个数组)
        $i=0;
        foreach($excel_array as $key =>$v){
           $objArray[$i]=array_combine($data1,$v);
            $i=$i+1;
        }

        //成功得到目标数组!
        /*将数据清洗成以下模样,以方便插入数据库
        $data = [
            ['用户名'=>'ceshi008','姓名'=>'ceshi','密码'=>'abcde','分院代码'=>'2'],
            ['用户名'=>'ceshi009','姓名'=>'ceshi','密码'=>'abcde','分院代码'=>'2'],
            ['用户名'=>'ceshi007','姓名'=>'ceshi','密码'=>'abcde','分院代码'=>'2']
        ];*/
        print_r($objArray);
        $res=(new \app\admin\model\Users)->BatchAddingUsers($objArray);
        exit;
    }else{
        // 上传失败获取错误信息
        echo $file->getError();
    }
}

你可能感兴趣的:(TP5 引入PHPEXCEl类)