zoukankan      html  css  js  c++  java
  • phpexcel 导出 科学计数问题

    今天在用php做excel导出的时候遇到了一个小问题,如图

    单元格默认格式为常规格式,当数值过长时就会变成科学计数。

    解决方法:

    如果输出的excel的$data数据是手动添加的,那就在对应值得后面添加一个空格,这样的话输出的值就会转换成文本格式.

    如果是从数据库读取的话那么把查找的字段稍作修改:

    Concat(param," ") as param

    这样的话输出的excel就是文本格式的了。

    但是有个小bug 当打开excel 查看双击单元格查看,然后当这个字段失去焦点的时候,此单元格又变成了科学计数,所以这种修改只是暂时的把输出的内容变成了文本格式,而单元格的格式还是没有被修改,这样做只能解决一时之需,并不是长久之计。

    所以还得在代码中加上

    $excel->getActiveSheet()->getStyle('C')->getNumberFormat()
      ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

    这段代码的意思是把C列所有的单元格初始化成text文本格式,这里注意我用的Thinkphp版本是3.2以上引入了命名空间所以加上了 "" ,有的版本不需要加"",视情况而定。

    添加以上两段代码

    生成excel

    右击鼠标设置单元格格式

    默认就问文本格式,显示也正确。

    大功告成------------------------------------------------------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/smallbo/p/6219822.html
Copyright © 2011-2022 走看看