解决 PHPExcel 长数字串显示为科学计数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 PHPExcel 长数字串显示为科学计数相关的知识,希望对你有一定的参考价值。

解决 phpExcel 长数字串显示为科学计数  

https://github.com/PHPOffice/PHPExcel/

 

在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号。

使用PHPExcel来生成excel,也会遇到同样的问题,解决方法有三种:
1、设置单元格为文本

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle(Simple);
//设置A3单元格为文本
$objPHPExcel->getActiveSheet()->getStyle(A3)->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//也可以设置整行或整列的style
/*
//E 列为文本
$objPHPExcel->getActiveSheet()->getStyle(‘E‘)->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//第三行为文本
$objPHPExcel->getActiveSheet()->getStyle(‘3‘)->getNumberFormat()
    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
*/
更多的格式可以在PHPExcel/Style/NumberFormat.php中找到。注意:上述的设置对长数字字符串还是以文本方式来显示科学计数法的结果,原因可能php在处理大数字时采用的科学计数法。

2、在设置值的时候显示的指定数据类型

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle(Simple);

$objPHPExcel->getActiveSheet()->setCellValueExplicit(D1,
                                 123456789033, 
                                 PHPExcel_Cell_DataType::TYPE_STRING);
3、在数字字符串前加一个空格使之成为字符串

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle(Simple);

$objPHPExcel->getActiveSheet()->setCellValue(D1,   . 123456789033);

 

推荐使用第二、三种,第一种没有根本解决问题。

以上是关于解决 PHPExcel 长数字串显示为科学计数的主要内容,如果未能解决你的问题,请参考以下文章

phpexcel导入excel表格,导入后自动为科学计数法5.1115E+14

Excel里数字太长显示为科学计数法如何显示完整数字

csv文件 长数据 用excel打开为科学计数法 用记事本打开显示为准确的数字 如何用excel打开也是准确数字

PHPExcel:长数字在阅读时具有科学格式(xxxE-08)

为啥输出的数字会变成科学计数法?

如何在 Matlab 中显示没有科学计数法的长数字?