phpexcel 导出 科学计数问题

Posted 孔小博

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

右击鼠标设置单元格格式

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

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

 

以上是关于phpexcel 导出 科学计数问题的主要内容,如果未能解决你的问题,请参考以下文章

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

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

哥哥小弟求助,php导出Excel数字总是错误

PHPExcel如何把该列的值设置为文本无科学计数?

phpExcel 操作示例

CSV 导出的是科学计数 如何转换