ARTICLE · 981213
Excel 导入总是出错?这三个格式雷区,我踩了一遍又一遍
Excel 导入总是出错?这三个格式雷区,我踩了一遍又一遍我第一次帮客户导数据的时候,对着一个 Excel 表格改了一下午格式,导一次报错一次,改到最后自己都分不清哪个是对的了。
那天客户给了一个 Excel,让我把历史入库数据导进系统。 我打开看了一眼,数据挺规整的:物料编码、数量、入库日期,三列,清清楚楚。我心想这还不简单,直接导入不就行了? 结果导入的时候,系统报错:日期格式不正确。 我看了一眼日期列,2024-03-01,挺正常的啊,怎么就格式不正确了? 我去问开发,开发说:"把单元格格式改成时间。" 我改了,重新导入。还是报错。 我说:"还是会算成数值。" 开发说:"改成文本试一下。" 我改成文本,重新导入。还是不行。 我当时人都麻了。时间格式、文本格式都试了,到底要什么格式? 后来才搞明白:Excel 里的日期,本质上是一个数字。你看到的 "2024-03-01",在 Excel 底层存的是 "45352"(从 1900 年 1 月 1 日算起的第 45352 天)。你改单元格格式,只是改变了这个数字的显示方式,底层存的还是数字。 而系统导入的时候,有些是按文本读的,读到的就是 "45352",当然会报格式错误。 最后怎么解决的?在日期列前面加一个英文单引号 ',强制把单元格内容变成文本,比如 '2024-03-01,这样 Excel 底层存的就是文本 "2024-03-01",而不是数字了。导入成功。 我当时看着那个单引号,哭笑不得。折腾了一下午,最后就是一个引号的事。
从那以后,我专门整理了一份 Excel 导入防雷清单,每次导数据之前先对照检查。三个最常见的雷区: 现象:导入后日期变成一串数字(比如 45352),或者直接报格式错误。 原因:Excel 日期本质是序列数值,改单元格格式不改变底层存储。 解法: 现象:物料编码、批次号、身份证号这种长数字,导入后变成了 1.23E+15 这种科学计数法,最后几位还变成了 0。 原因:Excel 默认把超过 15 位的数字用科学计数法显示,而且 15 位之后的数字会自动变成 0,不可逆。 解法: 导入数据前,先把编码列的单元格格式改成文本,再粘贴数据 如果数据已经变成科学计数法了,别保存,直接关掉重开,因为 15 位之后的数据已经丢了,找不回来 最稳妥的方式:在编码前加英文单引号 ',强制文本 现象:库位编码 "001A" 导入后变成了 "1A",前面的零没了。 原因:Excel 默认把纯数字开头的内容当数字处理,前面的零会自动去掉。 解法:
踩过几次坑之后,我养成了一个习惯:不管客户给的 Excel 看起来多规整,先试导两行。 具体步骤: 拿到 Excel 先不导,先检查三列:日期列、长编码列、前导零列,看格式对不对 复制两行数据到一个新 Excel,试导。看能不能成功,导入后的数据对不对 试导成功了,再导全量。全量导入后,抽查几条关键数据(日期、编码、数量),确认没问题 导入有问题,先看报错信息,对照上面三个雷区排查。别一报错就改格式,改来改去越改越乱 这个流程看起来麻烦,但实际上比 "直接导→报错→改格式→再报错→再改" 要快得多。我之前就是图省事直接导全量,结果改了一下午格式;现在先花 5 分钟试导两行,后面基本一次成功。
Excel 导入前,先把所有可能有问题的列设为文本格式,尤其是日期、编码、批次号 英文单引号'是你的好朋友,不确定格式对不对,加个引号强制转文本,大概率没问题 导入后一定要抽查数据,别看到 "导入成功" 就完事了,点进去看几条,日期对不对、编码全不全、数量准不准 客户给的 Excel,不要直接在原文件上改,先复制一份,改坏了还有退路 如果导入后数据已经乱了(比如长编码变 0),别试图修复,原始数据已经丢了,让客户重新给一份
Excel 导入这种事,说难不难,说简单也不简单。老手 5 分钟搞定,新人可能折腾一下午。区别就在于有没有踩过坑、有没有形成自己的检查清单。 如果你也是实施新人,建议把这三个雷区记下来,下次导数据之前先对照检查一遍,能省很多事。
如果这篇文章对你有帮助,欢迎:
如果你也是实施新人,或者正在被客户的"灵异问题"折磨—— 点个关注,咱们一起踩坑,一起填坑。👋
做实施,谁还没被 Excel 导入折磨过?
现场:导入时间变成了数值
三大雷区,一个都别踩
雷区一:日期数值化
在日期前加英文单引号 ',强制转文本 或者用公式 =TEXT(A1,"yyyy-mm-dd") 把日期转成文本格式,再粘贴为值 导入前先看一眼编辑栏,编辑栏里显示的是 "2024-03-01" 还是 "45352",后者就是数值
雷区二:长编码变科学计数法
雷区三:前导零丢失
单元格格式先设为文本,再输入数据 或者在内容前加英文单引号 ',强制文本 导入后抽查几条,看前导零还在不在
我的导入流程:先试两行,再导全量
给实施新人的建议
下一篇预告
下一篇,我打算写写:> 「报拿了一张坏单据测了一下午,BUG根本不在系统配置」都是血泪教训,敬请期待。👋
转发给你身边的实施同事
收藏起来,下次导入前翻出来对照一遍
留言说说你还踩过哪些 Excel 的坑 😂