微软论坛版主回复“无法默认禁用此功能”,可在“设置单元格格式”-“自定义”-“类型”改为“0”,去除科学计数法显示。
该方法对于如数据库导出的订单号(纯数字),可能会造成末尾的几位数字变为0。这种情况,就不能按上面的方法修改了。
1、可以使用vs code打开导出的.csv文件,然后使用正则替换的方式,给订单号附加一个前缀的英文单引号 ' ,然后保存为excel文件。
正则匹配写法:
1. 匹配部分:,([0-9]{15})
2. 替换部分:,'$1
注意,匹配部分末尾的15,表示要匹配的数字位置,尽量跟订单号长度一致,或少几位,但不能太少,避免匹配到其他非订单号内容。
2、保存后的Excel文件还可能显示为如下状态,不会自动转换格式,隐去英文单引号 ' 。
此时还需进行一下文本替换,让Excel自动转换格式。因为Excel文本替换不支持正则(至少我现在不知道怎么做正则替换),所以需要替换多次,0-9,多达10次。
注意,其中“查找内容”和“替换为”输入框中所填内容是一样的,如下图中的 1 表示1开头的订单号。
补充:
第一步,还可以使用notepad++或 EmEditor 等操作:
给指定列添加前缀单引号 ' ,避免被Excel自动转化成科学计数法
使用notepad++,暂有两种方法:(也可以使用EmEditor)
1. 如果列值是对齐的,而且文本行数不是数千,甚至上万行,可以手工操作:
鼠标放在要添加字符的位置,按住 Alt 键,垂直向下拖动鼠标到末行,松开 Alt 键,然后按下要添的字符键,可以是多个字符
2. 如果列值不是对齐的,或者行数太多,则可使用正则替换:
勾选正则匹配,匹配式为 ,([0-9]{14}),替换式为 ,'$1,$1代表使用匹配式中第一个()里面的原内容。如果有多列为纯数字的,而且列长度可能有交叉,建议看下要匹配的列的前一列末尾——即 , 前面的字符是否可写入匹配式,这样避免匹配误差。如果列长度没有交叉,则匹配列的纯数字长度尽量做最长匹配,匹配14个字符为 {14}
更多参考网络,如
https://blog.csdn.net/lk142500/article/details/83119029
https://blog.csdn.net/ws379374000/article/details/82591171
如有更好的方法,欢迎留言指正。