一、研究背景
CSV文件问题
项目之前都使用CSV文件
导出,导致过长的数字会显示为科学计数法,或者数值显示偏差;
解决办法
- 在数字前加入英文符号的单引号
'
,如此可以解决科学计数法的问题,但是用户打开CSV文件一般都是使用Microsoft Excel,此时在Excel文件中展示时,数字前会显示单引号'
; - 在数字前加入tab符号
\t
,如此可以解决科学计数法的问题,数据展示也没问题了;
新的问题
但对于本项目新的问题是:这些数字数据,客户可能会复制出来,进行二次操作使用,以上解决办法都无法使得复制
出来的数值不带额外的符号
,影响用户使用;所以我决定为了用户体验,更换导出工具为POI
。
二、CSV与Excel的对比
- 由于CSV文件是纯文本文档,.xls和.xlsx文件是二进制文件,所以在导出excel确实比CSV麻烦,不能流式处理,导致占用比较大的
内存
,且耗时
多一些; - 而且对于
数据量的限制
上,CSV是没有限制的,而Excel系列的文件都有一定的限制。 - 不过,csv方式导出也存在问题。首先,如果用excel来打开csv,超过一定行数的数据都会看不见,这就是excel导出数据量限制的问题。 其次,如果你要导出一个身份证号码,手机号码,邮政编码等,纯数字构成的字符串,在excel中打开csv时,这些字段很容易被识别成数字,造成科学计数法等问题。
对于选择CSV还是Excel,各位大大可以根据自己的导出数据的需求选择,各有优