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