一个客户把三千行客户表导进新系统,导到第八百多行报错,前面七百多条已经写进去了。再导一遍,重复数据又进去了。折腾了一下午,最后只能把已导入的全删掉重来,业务部门怨声载道。
先校验,再写库
正确的顺序是先把整个文件读进来做校验:必填有没有缺、手机号格式对不对、编码有没有重复、关联的销售员在不在系统里。全部校验通过再开始写库,任何一行不合格就整批不导。这样要么全成功,要么不动,不会出现导入一半的尴尬。
报错要能定位到行
只说导入失败,用户没法改。要告诉他是第几行、哪一列、什么问题,最好能导出一份带标记的错误文件,用户改完再导。这个功能做起来不难,但对使用体验影响特别大,尤其是几百上千行的表格,靠人自己找错能找一天。
大文件要能分批
几万行的数据一次性提交,浏览器会超时,服务器也可能扛不住。做成后台任务,分批写入,页面显示进度,中途断了能续。用户能看见进度条,心里就踏实,也不会重复点提交按钮,那往往才是造成重复数据的真凶。Excel 导入我们写过专门的清洗脚本,脏数据在导入前解决,比导完再改省事。
导入前的备份不能省。哪怕校验做得再好,也可能有想不到的问题,比如编码转换把客户名弄乱了。导入前对相关表做一次快照,出问题能回滚。这一步花两分钟,能省掉一天的补救,实在没有理由跳过它。导入前先清洗数据,比导进去再改省事得多。
还有模板这件事。给用户的导入模板要带示例行、写清每列要求、把下拉选项做成数据验证。模板做得清楚,用户填错的机会就少一半。太原不少企业的行政和财务是兼职做数据整理的,模板友好一点,他们的抵触情绪也小。
批量导入的常见疑问
能不能边导边用
技术上可以,但建议在业务低峰做,导入期间限制相关模块的写入,避免数据串。
表里有合并单元格怎么办
导入前必须拆开,程序读不到合并结构。模板里提前说明,避免反复沟通。
重复数据怎么防
按编码或手机号做唯一校验,命中则跳过或更新,由用户选择,别默默覆盖。
总结:批量导入的体验,决定了用户对新系统的第一印象。先校验、能定位、可续传、有备份,四件事做好,导入才不折腾人。