ThinkPHP5.0 中使用excel批量导入数据库

ThinkPHP5.0 excel批量导入数据库实战
该博客介绍了如何在ThinkPHP5.0中利用phpoffice组件进行Excel文件的批量导入,并详细讲解了从下载组件到遍历数据插入数据库的步骤,最后提到了前端只需实现简单的文件上传功能。

1.下载phpoffice组件

composer require phpoffice/phpexcel

2.下载成功后使用phpexcel

3.遍历插入数据库

  public function create()
    {
         $file = request()->file('file');

          if (empty($file)) {
           //返回您还没有上传文件!!
             return 3;
         }
      
          $excel = new PHPExcel();  

          $info = $file->validate(['ext'=>'xlsx,xls,csv'])->rule('uniqid')->move(ROOT_PATH.'public'.DS.'uploads' . DS . 'excel');
          
          if(!$info){
            //判断传过来的文件类型
             return 5;
          }else{
                $exclePath = $info->getSaveName();  //获取文件名  
                $file_name = ROOT_PATH . 'public' . DS .'uploads'.DS . 'excel' . DS . $exclePath;   //上传文件的地址  


                $objReader =\PHPExcel_IOFactory::createReader('Excel2007');  
                $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8  
                
                $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
                 $data = [];
                 $i=0;  
                foreach($excel_array as $k=>$v) {  
                    $data[$k]['name'] = $v[0];  
                    $data[$k]['phone'] = $v[1];
                    $data[$k]['sex'] = $v[2];
                    $data[$k]['time'] = strtotime(date('Y-m-d',time()));
                      $data[$k]['create_time'] = strtotime(date('Y-m-d',time()));
                        $data[$k]['update_time'] = strtotime(date('Y-m-d',time()));
                    $i++;
                }

                 $res = Db::table('name')->insertAll($data);
                if($res){
                    return 1;
                }else{
                    return 2;
                }
                
             
               
          }
    }

4.前台就做个简单的文件上传就行了!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值