首页 > PHP > 解决 PHPExcel 长数字串显示为科学计数

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

2012年7月24日 发表评论 阅读评论

解决 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);

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



欢迎转载,转载请注明文章出处,谢谢!
垃圾有点差凑合看还不错很精彩 (12 人打了份: 平均分:4.08)
Loading...Loading...
分类: PHP 标签:
  1. slertness
    2013年7月21日18:22 | #1

    谢谢,帮上忙了。

  2. 匿名
    2014年3月22日18:39 | #2

    Nice! 解决了很大的问题

  3. 陈佳
    2014年3月24日17:26 | #3

    谢谢

  4. biby
    2014年7月1日17:27 | #4

    thanks!

  5. 2014年8月22日19:37 | #5

    谢谢,Good job

  6. dagou
    2015年5月25日14:57 | #6

    十分感谢,解决大问题了。

  7. 2015年8月28日00:38 | #7

    太谢谢了,终于解决问题了,第三种。

  8. 匿名
    2015年10月19日10:52 | #8

    谢谢,PHPExcel_Cell_DataType::TYPE_STRING这个选项最好用

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量