PHPExcel导入excel文件时,如果某例的数字太长 识别出来的是科学计算法的数据
如上图的车辆VIN码,导入时PHP得到的是:8.66289E+14
查了下资料 原来PHPExcel自带处理函数: getFormattedValue()
修改代码:
//$objPHPExcel->getActiveSheet()->getCell('C'.$i)->getValue();
$objPHPExcel->getActiveSheet()->getCell('C'.$i)->getFormattedValue();
问题解决,不过这个方式对日期类型的数据效果不好;
还有一种方式,通过 number_format 对其格式化
/*还原科学计数*/
function decimalNotation($num)
{
$parts = explode('E', $num);
if (count($parts) != 2) {
return $num;
}
$exp = abs(end($parts)) + 3;
$decimal = number_format($num, $exp, '.', '');
$decimal = rtrim($decimal, '0');
return rtrim($decimal, '.');
}
这下再导入得到的数据就是正确的了;