PHP实现Excel导入

不羁的心 提交于 2020-01-23 23:57:42
public function addUdid() {
    if (!empty($_FILES)){
        ini_set('memory_limit','256M');
        $ upload = new \Think\Upload();                      // 实例化上传类
        $upload->maxSize   = 10485760 ;                     // 设置附件上传大小
        $upload->exts      = array('xls','xlsx');           // 设置附件上传类型
        $upload->rootPath  = './Public/Excel/';             // 设置附件上传根目录
        $upload->autoSub   = false;                         // 将自动生成以photo后面加时间的形式文件夹,关闭
        // 上传文件
        $info     =   $upload->upload();                                // 上传文件
        $exts     = $info['file']['ext'];                               // 获取文件后缀
        $filename = $upload->rootPath.$info['file']['savename'];        // 生成文件路径名

        if(!$info) {                                                    // 上传错误提示错误信息
            $this->error($upload->getError()); 
        }else{                                                          // 上传成功
             Vendor('PHPExcel');
            $PHPExcel = new \PHPExcel();    

            if ($exts == 'xls') {    
                 // 如果excel文件后缀名为.xls,导入这个类
                Vendor('PHPExcel.Reader.Excel5');
                $PHPReader= new \PHPExcel_Reader_Excel5();
            } else if ($exts == 'xlsx') {
                Vendor('PHPExcel.Reader.Excel2007');
                $PHPReader =new \PHPExcel_Reader_Excel2007();
           }
           $PHPExcel =$PHPReader->load($filename, $encode = 'utf-8');  //加载文件内容,编码utf-8
           $excel_array=$PHPExcel->getSheet(0)->toArray();             //转换为数组格式
           array_shift($excel_array);                                  //删除第一个数组(标题);
           $city = [];
           $i=0;
           foreach($excel_array as $k=>$v) {
               $click_time  = strtotime($v[3]);//点击时间转为时间戳
               $active_time = strtotime($v[4]);//激活时间转为时间戳
               $city[$k]['adid']      = $v[0];
               $city[$k]['idfa']      = $v[1];
               $city[$k]['appid']     = $v[2];
               $city[$k]['add_time']  = $click_time;
               $city[$k]['act_time']  = $active_time;
               $city[$k]['udid']      = $v[5];
               $city[$k]['model']     = $v[6];
               $city[$k]['os']        = $v[7];
               $city[$k]['ip']        = $v[8];
               $city[$k]['keyword']   = $v[9];
               $i++;
           }
          # 批量添加数据入库
          $ex=M('ApiCheckUdid')->addAll($city);
          if($ex){                                         
            $this->success("导入成功");
          }else{
            $this->error("导入失败,原因可能是excel表中格式错误","5");// 提示错误
          }
      }
    }else {
      $this->display(); 
    }
	}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!