tp5.0导入excel注意事项

1,下载phpexcel包,githua地址:https://github.com/PHPOffice/PHPExcel

2,下载好解压,把classes文件拷贝到vender下,重命为PHPExel,如图2

 

图一

 

图二

 

3,在控制器中使用

//导入数据
    public function insertExcel(){
        if(request() -> isPost())
        {
            vendor("PHPExcel.PHPExcel");
            $objPHPExcel =new \PHPExcel();
            //获取表单上传文件
            $file = request()->file('excel');
            if (empty($file)){
                echo "<font color=red>请选择上传文件</font>";
                die();
            }
            $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public');  //上传验证后缀名,以及上传之后移动的地址  E:\wamp\www\bick\public
            if($info)
            {
//              echo $info->getFilename();
                $exclePath = $info->getSaveName();  //获取文件名
                $extension = strtolower( pathinfo($exclePath, PATHINFO_EXTENSION) );
                $file_name = ROOT_PATH . 'public' . DS . $exclePath;//上传文件的地址
                if ($extension =='xlsx') {

                    $objReader =\PHPExcel_IOFactory::createReader("Excel2007");
                    $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8
                }else{
                    $objReader =\PHPExcel_IOFactory::createReader("Excel5");
                    $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8
                }
                $excel_array=$obj_PHPExcel->getSheet(0)->toArray();   //转换为数组格式
                array_shift($excel_array);  //删除第一个数组(标题);
                $info = [];
                $i=0;
                $erri=0;
                foreach($excel_array as $k=>$v) {
                    if(empty($v[1])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,姓名不可为空</font><br>";
                    }else if(empty($v[2])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,性别不可为空</font><br>";
                    }else if(empty($v[3])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,年龄不可为空</font><br>";
                    }else if(empty($v[4])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,联系方式不可为空</font><br>";
                    }else if(empty($v[5])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,学历不可为空</font><br>";
                    }else if(empty($v[6])){
                        $erri++;
                        echo "<font color=red>".$v[1]."导入失败,意向不可为空</font><br>";
                    }else{
                        $isexit=Db::name('gonghai')->where('phone='.$v[4])->find();
                        if ($isexit){
                            $erri++;
                            echo "<font color=red>".$v[1]."导入失败,已存在手机号</font><br>";
                        }else{
                            $info[$k]['username'] = $v[1];
                            $info[$k]['sexs'] = $v[2];
                            $info[$k]['ages'] = $v[3];
                            $info[$k]['phone'] = $v[4];
                            $info[$k]['xueli'] = $v[5];
                            $info[$k]['yixiang'] = $v[6];
                            $i++;
                        }
                    }

                }
                if($erri>0){
                    echo "<br><font color=red>以上共".$erri."条数据导入失败</font>";
                }
                if($i>0){
                    echo "<br><font color=red>成功导入".$i."条数据!!!请勿重新导</font>";
                }
                //var_dump($info);
                Db::name("gonghai")->insertAll($info);
            }else
            {
                echo $file->getError();
            }
        }
        return $this->fetch("ghexcel");
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itxiaolong3

打赏可以,但别打我就行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值