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

    右击鼠标设置单元格格式

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

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

  • 相关阅读:
    Docker
    Oracle-----RAC重启步骤 RAC管理(crs_stat、crsctl、srvctl)
    kubernetes 设备插件
    golang signal.Notify 信号,如何优雅的退出
    golang 通过fsnotify监控文件
    Golang中基础的命令行模块urfave/cli的用法说明
    fatal: unable to access 'xxx': Encountered end of file
    client-go 和 golang 源码中的技巧
    Golang之wait.Until 简单测试用例
    go viper 库
  • 原文地址:https://www.cnblogs.com/smallbo/p/6219822.html
Copyright © 2011-2022 走看看