之前采取
$sheet->getStyle('A1:A5')->getNumberFormat()
->setFormatCode( \PHPExcel_Style_NumberFormat::FORMAT_TEXT ); //格式为文本
的方式将单元格转化为文本,但是里面的身份证号信息还是以科学计数法形式存在(这里我始终搞不懂为什么文本格式会以科学计数法存在,我看了单元格确实是文本格式),虽然可以在数据前面加空格或者单引号或者在数据后面加“\t”,这样显示上可以达到很好的效果,但是却躲不过Excel宏检测(这是需求方写的宏检测,无论单引号空格反斜杠t都是会被检测出问题),所以问了躲避这个宏检测也是头疼了好久,然后看到另外一个解决方法:
$sheet->setCellValueExplicit("A1",'这里填写数据',\PHPExcel_Cell_DataType::TYPE_STRING); //只能一个单元格一个单元格赋值
发现确实可以完美躲掉Excel宏检测,怀疑是不是getNumberFormat()函数把我坑了
而且 setCellValueExplicit 这个函数同时还可以起到修改表中值的作用!!!所以如果有修改表中单元格的值的需求,也可以用这个函数