• 技术文章 >后端开发 >php教程

    PHP实现Excel长数字串显示为科学计数代码分享

    小云云小云云2018-02-24 14:36:34原创885

    在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);

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

    相关推荐:

    前端html表格生成excel表格实例

    js导出Excel表格超出26位英文字符的解决方法ES6

    PHPExcel如何实现合并与拆分单元格

    以上就是PHP实现Excel长数字串显示为科学计数代码分享的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Excel php 科学
    上一篇:php生成带二维码图片并强制下载实现代码 下一篇:php之$_SERVER函数解析
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 【吐血整理】40+个PHP面试题附答案(实战经验)• PHP_MySQL教程-第三天 基本函数第1/2页_PHP教程• 第1次亲密接触PHP5(2)_PHP教程• nginx支持pathinfo模式• 魔术方法__sleep和__wakeup、序列与反序列
    1/1

    PHP中文网