在处理导出的csv文件时发现这样一个问题用Excel和nodepad++打开如下图


所有为什么要这样呢,笔者就进行了实验。首先,在不给excel的单元格设置格式的情况下输入<=11个数字,会正常显示

大于11会使用下面形式显示,但还是准确完整的保留了数据

超过15会把后面的全变为0,这里实际我输入的是7变为了0且不可逆!!!所以数据一定要备份啊,我有一些数据就这样坏了。

这种问题一般两种解决办法,一个是加英文输入下的' 在最前面即可,二设置单元格格式为文本,这里不细说
那么回到我的问题,为什么这里前面有=还加了""呢,这是因为,由于excel的这种特性,所以,在导出csv文件时,为了防止过长数据变为0,都会对相应的字段进行添加字符,我这里的数据就是使用的=和"",单纯的等号并不能改变excel对于长数据的特点,那么单纯""会把符号显示出来,所以就两者组合了一下,当然,还可以有别的添加方式。如
C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法:https://blog.csdn.net/fkmg001/article/details/83799444
这里在看一下两者单独作用的差别


第二种是不是显示的更友好!完全看不出""
顺便把设置成文本和加'的也进行展示


当Excel中数字超过11位时,会以科学记数法显示,超过15位则数据会被截断。解决方法包括在数据前加英文单引号或设置单元格格式为文本。在CSV导出时,为防止数据被截断,常会在数字前添加等于号和双引号。通过特定方式导出或设置,可以避免这种情况并保持数据完整。
718

被折叠的 条评论
为什么被折叠?



