PHP 导出表格时数字格式错误

php生成的CSV有时候会遇到两个特殊情况:

1、输出的字段中,含有超长数字(18位的数字)比如身份证:122121197410180016,就算输出时字段加上"",还是会被识别成数字,并且丢失精度,后面的4位会变成0,象这个样子122121197410180000

2、输出的字段中,含有前导0的数字字符串,会被强制丢掉前导0。比如:01082151122,或者00001,00002,系统会强制识别成 1082151122,1,2这样的数字。

针对上面的问题,只能说excel太邪恶了,无法通过常规办法没法解决。非常归方案有2个:

1、可以在excel中通过,菜单->数据->导入文本数据 这个方式来手动设定字段为文本类型然后导入,但是这个对于用户而言操作难度太大了,因此这个方式不可行。

2、用更邪恶的办法搞定excel,在字段末尾加上一个 \t 的制表符,"\t"很特殊,在excel是不会被显示出来的但他的确存在,然后打开文件的时候这个字段就会被默认当成字符串来处理了。(后遗症就是字段里确实有一个\t在里面,入如果只是拿来看到是没有问题,但是还要把这个东西导入异构系统时 \t 会导致不可预知的错误)。

原文网址:https://blog.csdn.net/hzbigdog/article/details/41114253

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值