您的位置:时间博客>PHP>解决PHPExcel导入数字被转科学计数问题

解决PHPExcel导入数字被转科学计数问题

PHPExcel导入excel文件时,如果某例的数字太长 识别出来的是科学计算法的数据

3947ea861bd0f796d587bc90992f1202.png

如上图的车辆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, '.');
}

这下再导入得到的数据就是正确的了;

转载请注明本文标题和链接:《 解决PHPExcel导入数字被转科学计数问题

相关推荐

网友评论 0

未登陆 表情
Ctrl+Enter快速提交