csv文件可以直接用Excel打开。 写csv文件的效率和写txt文件的效率一样高。 同样的数据内容,生成的csv文件的大小远远小于生成的Excel文件。
从以上优点就可以看出生成csv文件消耗的内存绝对小于生成Excel文件。
导出excel确实有些麻烦,不能流式处理,导致占用比较大的内存,很容易导致内存溢出;并且excel的数据量是有限制的,不能超过65536行。
用csv方式导出,则可以像导出txt一样,以文本流的方式进行流式处理,不但能导出海量信息,而且流式处理占用内存极低,服务器对浏览器的响应也是非常迅速的。轻松导出几百万行数据,理论上是不限量的。
首先,如果用excel来打开csv,超过65536行的数据都会看不见,这是excel程序的问题。 其次,如果你要导出一个身份证号码,手机号码,邮政编码等,纯数字构成的字符串,在excel中打开csv时,这些字段很容易被识别成数字,造成误解。
解决方法是在字符串前加“'”(单引号),然而这样处理后,excel打开scv时会看到这个“'”,又不对了,并且单击该单元格再离开后,这个单引号会自动消失,这是'在excel中的特殊用途导致的,如果此时再保存文件,文件中的'会丢失,如果再打开该csv文件,问题就更严重了,编码全成数字了(因为'丢了)!
上面两个问题按下不说的话,那么csv文件还是有些基本规则的,比如用""括起来那么里面的","不会作为分隔符等转义操作。 总体而言,我也倾向于csv格式,它可以流式处理。