工作中遇到的php写csv文件问题
来源:互联网 发布:outlook for windows 编辑:程序博客网 时间:2024/06/05 04:02
问题描述:工作中有个项目50w+条数据写文件并上传到服务器,供用户下载的情景。用的方案是php fputcsv函数写数据,文件后缀.txt,默认让用户以记事本方式打开。后来有用户反馈用excel打开每行之间有空白行。
暴露自己的问题:彻彻底底的小白。。。。。。。文件格式的区别,为什么txt看起来正常用文本编辑器或csv打开就多了空白行,习惯了导出格式是csv但为什么选择csv而不是excel,除技术外的问题是没弄清楚用户的需求。
一点一点解疑惑:
1 为什么通常情况下选择了csv
1)写文件的效率csv比excel高,写txt文件的效率也比较高
2)同样的数据量,生成的csv文件大小远远小于excel文件【看网上的解释是excel不能流式处理,导致占用的内存较大,容易导致内存溢出,excel版本低不能超过65536行;csv方式跟导出txt一样,以文本流的方式进行流式处理,导出几百万条数据还是很easy的,流式处理占用内存低服务器对浏览器的响应也快】
这样看来,选择生成csv文件是没问题的。
2 换行符问题
没搞清楚用户需求,产品也没有明确说明,做的时候生成的文件后缀是txt,默认用记事本打开(当时是这么定的,但实际生产环境下不同客户需要的文件格式不同,有的要求txt,有的excel格式,但他们不会用csv)。xp中记事本不支持/n转义字符,所以用记事本打开时数据没有换行,因此在写文件时加了/r/n转义字符,这样用记事本打开数据换行了,但是用excel打开时就多了很多空白行。感觉这样就很尴尬,两者不能兼容,不知道大牛们有没有什么好办法。
3 对文件格式傻傻分不清
csv文件强转为xls格式,一个数据中加了逗号分隔符并且本来的两列在一个单元格里,个人是因为excel中逗号不能作为列的分隔符。csv文件编辑保存容易出错。csv、excel、txt文件的区别,用文本编辑器打开时能否反映文件中换行、空格的真实情况?
这些常识性的问题之前都没考虑过。路漫漫其修远兮!
- 工作中遇到的php写csv文件问题
- PHP文件计数器遇到的问题-并发写文件
- python在设置编码和写csv文件遇到的问题以及解决方案
- 数据库中导出CSV文件与EXCEL文件数据对比可能遇到的问题与解决方法
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题
- 工作中遇到的问题-
- 工作中遇到的问题
- 工作中遇到的问题
- 新人报到
- 机器学习 scikit-learn(1)
- 新人报到
- The Easiest Way to Bypass XSS Mitigations http://brutelogic.com.br/blog/the-easiest-way-to-bypass-xs
- git基础学习之——解决merge冲突
- 工作中遇到的php写csv文件问题
- 新人报到
- JSP中的EL表达式详细介绍
- 319. Bulb Switcher
- Task-Question
- 新人报到
- 新人报到
- 美团 字符编码
- 【稀饭】react native 实战系列教程之影片数据获取并解析