|
好奇怪,这个程序跑的好好的,突然间有一天,客户上传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); } |