thinkphp5 批量导入excel表格数据

1.首先需要下载PHPExcel 插件包,解压后放入vendor文件夹中

2.代码

/**
     * 批量导入数据
     */
    public function add(){
                
            if ($this->request->isPost()) {

                vendor("PHPExcel.PHPExcel");
                Loader::import('PHPExcel.PHPExcel.IOFactory.PHPExcel_IOFactory');
                Loader::import('PHPExcel.PHPExcel.Reader.Excel5');
                $objPHPExcel = new \PHPExcel();

                $param=input('post.');
               
                //获取表单上传文件  
               // $file = request()->file('fileurl');  
                $file = fopen(ROOT_PATH . 'public' . DS . $param['fileurl'], "r");
               
                    $file_name = ROOT_PATH . 'public' . DS . $param['fileurl'];   //上传文件的地址
                    
                    $name=strrchr($file_name,'.');

                    if($name=='.xlsx'){
                        $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
                    }elseif($name=='.xls'){
                        $objReader =\PHPExcel_IOFactory::createReader('Excel5');

                    }elseif($name=='.csv'){
                        $objReader =\PHPExcel_IOFactory::createReader('csv');
                    }
                   

                    $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8
                    $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
                    array_shift($excel_array);  //删除第一个数组(标题);
                   
                    $data = [];  
                    $i=0;  
                    foreach($excel_array as $k=>$v) {  
                        $data[$k]['bianhao'] = $v[0];  
                        $data[$k]['compname'] = $v[1];  
                        $data[$k]['prodname'] = $v[2];  
                        $data[$k]['materiel'] = $v[3];  
                        $data[$k]['num'] = $v[4];  
                        $data[$k]['money'] = $v[5];  
                        $data[$k]['date'] = $v[6];  
                        $data[$k]['salesperson'] = $v[7];  
                        $data[$k]['attribute'] = $v[8];  
                        $data[$k]['recorddate'] = $v[9];  
                        $data[$k]['contractcode'] = $v[10];  
                        $data[$k]['lidu'] = $v[11];  
                        $data[$k]['chanliang'] = $v[12];  
                        $data[$k]['datetime'] = time();  
                        $i++;  
                    }  
                   $success=Db::name('alpacooperation')->insertAll($data); //批量插入数据
                   $error=$i-$success;  
                   // echo "总{$i}条,成功{$success}条,失败{$error}条。";
                $this->success('添加成功', url('admin/xslpl/index'));
                //}else{  
                    // 上传失败获取错误信息  
                   // echo $file->getError();  
                  //  $this->error($this->errorMsg);
               // }
        }
         return $this->fetch('save');
    }  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值