当前位置: 首页 > 后端技术 > PHP

导出的CSV文件格式错误总结

时间:2023-03-29 16:44:24 PHP

问题描述:目前,一般来说,在web开发过程中,使用导入导出报表的情况有很多。先说出口。工程数据量大,导出的行数也多,大约50万行。选择csv方式导出。对于下面的应用场景,在导出过程中有几点需要注意。(测试环境,php7.1,mysql5.7.22,mysql5.5.53,mac自带numbers6.0版本,Windows系统Excel2007版本)应用场景:1.用户只习惯用Excel处理数据,导出csv却用excel打开.2、无论是导入还是导出,用户对数据表格的格式(边框、底纹、对齐方式等)没有要求,只对数据格式(数字、文本、浮点数等)有基本要求。3.后端对大型xls/xlsx文件的导入性能较差。(目前php导出excel占用内存大,大数据导出容易造成内存溢出。)导出注意点:1、导出数据量大,尽量少用汉字。例如,在某些状态字段中,数据清单是一个数字或只占一个字节。如果完全换成中文状态,可能会达到6个字节甚至更多。效率受到影响。如果需要使用中文表格。尽可能瘦。2.其他常见问题。先来看一组图片:这是要导出的初始数据。这以csv格式显示。这就是我们想要的结果。windows系统的excel2007版本是这样的。经过仔细观察,我们发现了几个问题:zifunumebr字段前导的0没有了。数字字段有一个长整数更改为科学计数法。zifu字段中的汉字变成了乱码。最后一行的zifu和fudian字段在excel显示时合并了。这里的解决方法其实很简单。就是在插入字段后加一个制表符“t”。注意不能使用单引号。这样除了中文乱码,其他类型的字段都可以解决。如果中文乱码解决了,其实很简单。iconv函数将urf-8转为GBK编码,用Excel打开不会错。