excel里数字变成科学计数法,绝大多数情况都只是显示格式的问题:选中对应单元格,把格式改成「数值」,或者自定义格式直接设为0,再把列宽拉宽,就能看到完整数字。以下操作以windows版excel 2021和microsoft 365为准,注意如果原数据超过15位,而且已经以数值格式存储了,末尾丢失的精度靠改格式是找不回来的。
先看公式栏,判断数字有没有丢
点一下显示成1.23E+17的单元格,先看顶部的公式栏。如果公式栏里显示的还是完整数字,说明只是显示异常;要是公式栏里末尾已经变成0,那就是Excel录入时已经按15位精度处理过了。手机号、身份证号、银行卡号、订单号这类本来就不需要参与计算的编号,最稳妥的存储方式是直接设为文本格式。

把已有数值改成普通数字
选中要调整的全部数据区域,按Ctrl+1直接调出「设置单元格格式」窗口。如果是普通整数,选「数值」分类,把小数位数设为0;不需要千位分隔符的话,也可以选「自定义」,在类型框里输入0。点确定之后,双击列标题右侧的边线,列宽就会自动适配内容长度。
本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt和xlutils模块。另外还演示了如何通过Tcl tcom包对excel操作。感兴趣的朋友可以过来看看

18位编号要先设为文本
如果要新导入18位这类长编号,得先把整列的格式提前改成「文本」,再粘贴或者导入数据;手动输入的话,也可以在数字最前面加个英文半角的单引号。这个单引号只是告诉Excel把内容按文本存储,不会在单元格里显示出来。如果末尾数字已经丢失,只能回到原始文件重新导入,用TEXT、ROUND函数或者拉宽列宽都找不回来。
最后用首尾两条记录核对
最后别忘了抽查第一条和最后一条记录,对照原数据确认位数、开头的0、末尾数字都完全对应上。需要参与求和计算的数字,保持数值格式就好;只用来做身份识别的长编号,统一用文本格式存储——这样既不会再自动变成科学计数法,也不会丢失精度。










