关闭

工作中遇到的php写csv文件问题

标签: phpcsv
152人阅读 评论(0) 收藏 举报

问题描述:工作中有个项目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文件的区别,用文本编辑器打开时能否反映文件中换行、空格的真实情况?

这些常识性的问题之前都没考虑过。路漫漫其修远兮!

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

2012年末工作中遇到的问题总结及感悟

新知识总结: 1:单点登录 验证系统;系统1; 系统2; 系统3;单独项目提供服务的思想 + cookie + filter;服务端能够处理客户端coolie 2:SOAP:简单对象访...
  • u013700340
  • u013700340
  • 2014-03-30 19:36
  • 1089

Java web 工作中遇到的一些问题

1、replaceAll()报错 public class Biaomi { public static void main(String[] args) { String a = "发大(...
  • xiaoyurencao
  • xiaoyurencao
  • 2016-01-26 13:38
  • 657

近期工作中遇到的问题及其解决办法

最近的一个月的工作相对于三月份刚进公司时候的我改善了许多。最大的感观就是在bug的处理上。 之前的工作中多多少少也会遇到许多bug,虽然也能解决,但是大多数是的解决方法都是同学、朋友等相关人提供帮助,...
  • ws_Nomb0
  • ws_Nomb0
  • 2016-05-06 14:37
  • 993

我在工作中遇到的JS问题汇总

1.tabmenu问题 这个问题我一直在网上参考源码,参考了很多源码,但是我感觉很难处理,我自己困惑的地方有这样几点。 1、我只能通过getElementById(“tab”)在读...
  • aVeCathleen
  • aVeCathleen
  • 2015-08-19 11:31
  • 1005

2015年工作中遇到的10个问题:1-10

1.NullPointerException。内容分类存在脏数据,导致报错,需要判断变量是否为Null。查看内容,id不合法,没有找到这条内容,需要判断是否有值,如果为null,跳转到404页面。2....
  • FansUnion
  • FansUnion
  • 2015-01-08 21:11
  • 1796

程序员可能会遇到的问题:工作了一段时间了,面临你的只有两条路(1.继续走下去2.被淘汰掉)。

在工作一段时间之后,作为程序员的我们该何去何从?
  • cainiaobukeyi
  • cainiaobukeyi
  • 2017-02-21 17:18
  • 1275

近期工作中遇到的一些问题总结

1.城市列表数据的更新,可以加入版本控制这个概念,每次进入时先比对本地版本号跟服务器版本号是否一致,不一致去网络进行请求来进行城市数据的更新. 2.解析字典的脚本,将字典字符串拷贝到txt文档,cd...
  • q364385155
  • q364385155
  • 2015-12-22 17:42
  • 770

程序员遇到问题时怎么办

技术区: 程序员遇到问题时怎么办: 根本的指导方针 1.首先写代码的时候最好不要有缺陷。最好的修复方法就是让bug胎死腹中。 良好的单元测试强制数据库约束使用输入验证框架避免未...
  • lijia791541916
  • lijia791541916
  • 2016-06-23 13:19
  • 1925

程序员面试以及工作中真实问题汇编!

磨砺营IT教育 2016-10-26 14:25 【威哥说】不管是面试也好,还是工作中以及学习中,遇到问题及时解决出来是最好的方法,其实优秀程序员之所以优秀就是他们解决问题的能力要更...
  • u011277123
  • u011277123
  • 2016-10-27 18:22
  • 394

项目中遇到的JS闭包问题

0x00 发现问题今天在写聊天室的过程中,遇到一个匪夷所思的问题,当时真是一脸懵逼,检查了好几遍都没问题,而且奇怪的是,只要刷新一下就恢复正常。搞得我差点设置在切换后自动刷新了。当然,这样用户体验很不...
  • larry011
  • larry011
  • 2016-02-27 23:29
  • 383
    个人资料
    • 访问:203次
    • 积分:21
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档