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 会导致不可预知的错误)。

唉,自己权衡吧,我也仅仅想到这两个方案。

万恶的excel。

php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决的更多相关文章

  1. --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题

    --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题在字段前加上\t即可select concat('\t',a.IDCARD_NO) from xxx a

  2. 导出csv xls文件数字会自动变科学计数法的解决方式

    将数据导出excel文件变成科学计数法问题:     分析: 用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软件查看csv文件时就会变成科学技术法的表现形式.    其实这个 ...

  3. 关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

    上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认 ...

  4. Oracle导出csv时数字不变成科学计数法

    导出成CSV后,用excel打开,点击excel的[数据]→[自文本],选择导出的csv文件,下一步,分隔符选择[逗号],下一步,选择所有列“按住shift+鼠标左键选取”后,列数据格式选文本,[完成 ...

  5. Web端导出CSV

    前端导出文件大部分还是通过服务器端的方式生成文件,然后传递到客户端.但很多情况下当我们导出CSV时并不需要后端参与,甚至没有后端. 做过WebGIS的同学经常会碰到这种场景,用户的兴趣点数据以csv文 ...

  6. mysql 导出过长的数字列时变科学计数法问题解决办法

    --mysql 导出数据时,  数字类型的列如果位数过长,变为科学技术发问题  concat('\t',a.IDCARD_NO)     例子: select   concat('\t',a.IDCA ...

  7. 利用a标签导出csv文件

    原文 简书原文:https://www.jianshu.com/p/a8687610cda3 大纲 1.需求分析 2.通过a标签实现文件导出 3.实现方式 1.需求分析 导出文件,使用最多的方式还是服 ...

  8. JavaScript数字精度丢失问题总结

    本文分为三个部分 JS 数字精度丢失的一些典型问题 JS 数字精度丢失的原因 解决方案(一个对象+一个函数) 一.JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加 0.1 + 0.2 != ...

  9. 导出CSV,导出excel数字过长显示科学计数法解决方案

    再导出CSV表格时发现数字超过一定长度后会缩写成科学计数法,对于手机号和身份证就比较尴尬了. 在网上找了一下,大部分都是加"'"将数字转换为字符串,但是纠结于导出的数字前面有个单引 ...

随机推荐

  1. QtQml 应用程序的性能考虑与建议(来自小V的翻译)

    QtQml 应用程序的性能考虑与建议 原文:csdn aidear_evo QtQml应用程序的性能考虑与建议 本文翻译自Qt官网文档:http://doc.qt.io/qt-5/qtquick-pe ...

  2. 【Python】iiacm_filemaker ——简易的.cpp文件创建即初始化脚本,ACMer专用

    代码已全部重写,上次写的真是不忍直视…… 今天刚刚接触Python,本着学以致用的原则,就写了一个按照要求自动生成.cpp文件并初始化头文件的脚本. 确定你的linux中安装了Python,将下面的代 ...

  3. GNU/Linux Distribution Timeline v12.10

    GNU/Linux Distribution Timeline v12.10 原图下载 GNULinux Distribution Timeline 12.10.png GNU/Linux Distr ...

  4. jquery 中 fn.apply(this, arguments)是什么函数?有什么作用?能举个例子吗

    function Person(name){ this.name=name; this.sayname=function (){ alert(this.name); } } function Stud ...

  5. bind新发现

    function foo(a,b){ this.val = a+b; } var bar = foo.bind(null, 'p1'); var baz = new bar('p2'); consol ...

  6. Girl_iOS100天学iOS的第一天(规划)

    不好的开端. 只是还好,总算是開始. 今天一直在做项目中的某个模块,发现自己尽管工作了一段时间,但编码速度还是够慢的 >.< 探究其为什么慢的原因,还是由于自己对某些控件等基础的不熟悉,如 ...

  7. vb.net常用函数

    当然,这些都可以从MSDN查到,但是有时候打开帮助老慢的,所以先放到这里放一放,查个函数什么的比较快一点.都是从网上搜来的.Abs(number) 取得数值的绝对值. Asc(String) 取得字符 ...

  8. iOS调用系统声音与振动

    如何调用系统声音?[iphone 调用系统铃声与震动功能] 首先要在工程里加入Audio Toolbox framework这个库,然后在需要调用的文件里#import <AudioToolbo ...

  9. some knowledge t

    NSNumber static 看下面例子  gCount可以在Person 文件中使用  在main 中不行 @property()括号中可以填的属性 国际化 OC中的快捷键操作 operation ...

  10. google base之IncomingTaskQueue

    如同名称描述的那样,这个类就是个taskqueue,也就是任务队列,添加任务到队列,然后由MessageLoop去执行task,比较关心的函数如下: bool IncomingTaskQueue::A ...