编程语言
首页 > 编程语言> > PHP:如何使用科学记数法/指数格式从Excel数据中获取字符串格式的数据?

PHP:如何使用科学记数法/指数格式从Excel数据中获取字符串格式的数据?

作者:互联网

我在Yii2中有一个项目,它使用PHPExcel库来读取Excel文件.
我有一个Transaction Id列,其中包含General format单元格中的数据.
我的Excel文件的屏幕截图:
enter image description here

你可以看到上面,如果我输入15个字符的数字并在其中放入两个点.它将显示为数字.

第一个例子:输入=>细胞中800.003.151476962显示为
 
并且在Formula Bar中显示为

但如果在内部输入15个没有点数的字符,它将显示为科学记数法/指数.

第二个例子:输入=>细胞中的800003151476925显示为
 =&GT科学记数法/指数数据格式
并且在Formula Bar中显示为

当我尝试读取PHP中的数据时,我的PHP会将Second Ex数据读作科学记数法/指数格式而不是字符串/数字/小数.

如何在我的PHP中将第二次Ex数据作为800003151476925(无论是字符串,数字还是十进制格式)而不是8.00003E 14?

谢谢 :)

注意:其实我在Convert exponential to a whole number in PHP,Convert exponential number to decimal in php,Convert exponential number to decimal in php阅读并尝试了建议,但我什么也没得到.

解决方法:

如果在一个值中加上2个点(小数点),那么它只能是一个字符串;所以MS Excel会将它格式化为常规(MS Excel的默认单元格格式)作为字符串.使用单点(小数点),PHPExcel会将其视为一个数字,并相应地设置数据类型;并且MS Excel会将其视为浮点数,如果MS Excel常规格式规则大于标准的32位整数大小,则将其格式化为格式,将其视为浮点数.

如果要强制进行字符串格式化,则需要通过使用setCellValueExplicit()将其设置为字符串数据类型来强制将其设置为字符串,从而显式地执行此操作;或设置除常规以外的格式掩码,如0

$objPHPExcel->getActiveSheet()->getStyle('A9')
    ->getNumberFormat()
    ->setFormatCode(
        '0'
    );

标签:php,phpexcel,scientific-notation,exponential,phpexcelreader
来源: https://codeday.me/bug/20190608/1197975.html