PHP.导出excel时身份证号码正常显示

发布时间:2016-10-27 10:09:18编辑:丝画阁阅读(1059)

1、我们都有这样的经验,科学计数法是因为数字太大了,在数字左边加一个单引号,你就会发现显示完整的数字了,而不是科学计数的数字了。

2、所以,同理,我们在输出的时候把数字改成字符串类型的就好了。


$list[$i]['u_shenfen'] = "'".$list[$i]['u_shenfen'];



有时候要导出一些数据,如身份证号码和一些位数较多的字段,导出后在Excel中总是会被以科学计数显示。

解决方法其实很简单,在程序中将要导出的字段前加上"\t"即可。


$list[$i]['u_shenfen'] = "\t".$list[$i]['u_shenfen'];


首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 数字:vnd.ms-excel.numberformat:#,##0.00
4) 货币:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加到对应的标签对(即闭合标签)即可。如,给标签对添加样式,如下:

925148198402161833


3.上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式。

这种显示很不人性化而且量多了修改起来也很麻烦。

这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式。

我的处理方式是在变量后面加个空格,简单方便。

$usercode .=  ' '; $money .= ' ';




关键字