PHPExcel 获取excel表格里面的值的时候,返回的是object的解决办法

好奇怪,这个程序跑的好好的,突然间有一天,客户上传excel表格的时候,发现数据导入不成功,后来检查日志的时候,发现,原来$objPHPExcel->getActiveSheet()->getCell("A". $i)->getValue(),可以直接获取到值的,突然就返回了object了,后来查找资料发现,可以在原有基础上__toString()转一下就ok了,下面贴下代码

 

public function importExcelSb(){
        vendor("PHPExcel.PHPExcel");
        $file_name='D:\shenhe\data\bb\222.xlsx';
        $extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
        if ($extension == 'xlsx') {
            $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
            $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
        } else if ($extension == 'xls'){
            $objReader =\PHPExcel_IOFactory::createReader('Excel5');
            $objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
        }else{
            $resust=$this->jsonDeal('',-2,'文件格式错误');
            echo $resust;exit;
        }
        $sheet =$objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();//取得总行数
        $highestColumn =$sheet->getHighestColumn(); //取得总列数
        if($highestRow>5000){
            $data='';
            $code=-2;
            $mes='数据量超过规定了';
        }else{
            for ($i = 2; $i <= $highestRow; $i++) {
                //看这里看这里,前面小写的a是表中的字段名,后面的大写A是excel中位置
                //$data[$i]['pId'] =$objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
                $datap[$i]['phone'] = $objPHPExcel->getActiveSheet()->getCell("A". $i)->getValue();
                if(is_object($datap[$i]['phone']))  $datap[$i]['phone']= $datap[$i]['phone']->__toString();
                if($datap[$i]['phone']){
                    
                    if(strlen($datap[$i]['phone'])==11){
                        $data[$i]['username'] =$objPHPExcel->getActiveSheet()->getCell("D" .$i)->getValue();
                        if(is_object($data[$i]['username']))  $data[$i]['username']= $data[$i]['username']->__toString();
                        if(!$data[$i]['username'])$data[$i]['username']='未知';
                        $data[$i]['addtime']=time();
                        $data[$i]['phone'] =$datap[$i]['phone'];
                        //$data[$i]['content'] = $objPHPExcel->getActiveSheet()->getCell("D". $i)->getValue();
                        $data[$i]['company_id']=56;
                        //$data[$i]['house']=1;
                        $data[$i]['state_id']=100;
                        $data[$i]['is_in_public_pool']=1;
                        $data[$i]['source']='推广1';
                        $data[$i]['fee']=10;
                        $data[$i]['promotion_prefix']='gjj-';
                        $data[$i]['promotion']='gjj-001';
                        $data[$i]['allot'] = 2;
                        $data[$i]['is_price_type'] = 1;
                        $data[$i]['actual_register_time'] = time();
                        $data[$i]['city']='上海市';
                        //$data[$i]['age']=$objPHPExcel->getActiveSheet()->getCell("F". $i)->getValue();
                        //if($data[$i]['age']>100){$data[$i]['age']=0;}
                        $data[$i]['age']=30;
                        $data[$i]['loan'] = $objPHPExcel->getActiveSheet()->getCell("B". $i)->getValue();
        //                if(strstr($data[$i]['loan'],'万')){
        //                    $data[$i]['loan']=substr($data[$i]['loan'],0,strlen($data[$i]['loan'])-3)*10000;
        //                }
                        $data[$i]['loan']=50000;
                        $data[$i]['content']=$objPHPExcel->getActiveSheet()->getCell("E". $i)->getValue();
                        if(is_object($data[$i]['content']))  $data[$i]['content']= $data[$i]['content']->__toString();
                        $res=M('uclient')->where('phone='.$data[$i]['phone'].' and company_id=56')->find();
                        if(!$res){
                            M('uclient')->add($data[$i]);
                        }
                
                    }
                }
                
                
            
            }
            
        }
        $resust=$this->jsonDeal($data,$code,$mes);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值