thinkphp5 (tp5)导入excel

必须要先下载一个插件,即https://github.com/PHPOffice/PHPExcel
解压后,里面有个classes文件夹,我们需要把classes文件夹名修改为为PHPExcel
thinkphp5 (tp5)导入excel_第1张图片

,然后把他复制到根目录中的extend目录下.

thinkphp5 (tp5)导入excel_第2张图片

然后,在控制器中这样引入

import('phpexcel.PHPExcel', EXTEND_PATH);

也可以放在根目录中的/vendor/目录中
引入方法为

vendor("PHPExcel.PHPExcel");

具体案例
数据库
thinkphp5 (tp5)导入excel_第3张图片
thinkphp5 (tp5)导入excel_第4张图片
一,模板中这样写

 
"{:url('index/upload_excel')}" method="post" enctype="multipart/form-data"> 'excel' type='file'/> type='submit' value="excel导入,提交"/>

控制器中这样

   public function upload_excel() {
        $request = \think\Request::instance();
        $file = $request->file('excel');

        $save_path = ROOT_PATH . 'uploads/';
        $info = $file->move($save_path);
        //print_r($info);exit;

        $filename=$save_path . DIRECTORY_SEPARATOR . $info->getSaveName();
          if(file_exists($filename)) {//如果文件存在
          import('phpexcel.PHPExcel', EXTEND_PATH);


    if( strstr($filename,'.xlsx'))
{
 $PHPReader = new \PHPExcel_Reader_Excel2007();
}
else
{
 $PHPReader = new \PHPExcel_Reader_Excel5();
}

           //载入excel文件
           $PHPExcel = $PHPReader->load($filename);
           $sheet = $PHPExcel->getActiveSheet(0);//获得sheet
           $highestRow = $sheet->getHighestRow(); // 取得共有数据数
           $data=$sheet->toArray();

           for($i=0;$i<$highestRow;$i++){
                $user['wxid']=trim($data[$i][0]);//excel中的第一栏
                //$user['name']=$data[$i][1];//第二栏
if(strlen($user['wxid'])==11 && substr($user['wxid'] , 0 , 1) =='1' ){//如果内容为11位的手机号,则入库
    $new_datas[] = $user;
}
}
if(count($new_datas)>0){
     db('data')->insertAll($new_datas, true);
        $this->success('上传成功' . count($new_datas) . '条数据');
}else{
    $this->success('内容为空');
}


     // return $ret;
    }else{
        return array("resultcode" => -5, "resultmsg" => "文件不存在", "data" => null);
    }

    }

请打赏谢谢大佬

你可能感兴趣的:(thinkphp)