答案放最前面:请使用最新版本PHPExcel 1.8.1
背景:项目里面不允许导出手机号码,涉及客户隐私问题,改成导出会员卡号,使用过各种方案。例如:
$objPHPExcel->getActiveSheet()->setCellValue('B2' , "022041171425" ,PHPExcel_Cell_DataType::TYPE_STRING);
$objPHPExcel->getActiveSheet()->setCellValue('B2' , "022041171425" ,PHPExcel_Cell_DataType::TYPE_STRING2);
$objPHPExcel->getActiveSheet()->getStyle('B2')->getNumberFormat()->setFormatCode("@");
$objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
至于字符串前面加单引号或者空格的就不算哈,这种虽然能导出,但是强迫症认为这样是不正确的。。
尝试了很长时间之后,怀疑是不是PHPExcel本身就存在这个问题,下载了一份最新版本的PHPExcel1.8.1,小心翼翼的尝试一下,发现竟然ok了,最后语句使用的 这种方式:$objPHPExcel->getActiveSheet()->setCellValue('B2' , "022041171425" ,PHPExcel_Cell_DataType::TYPE_STRING);