批量上传:别让一键高效工具成为“导入失败”的警报器

12 评论 20646 浏览 102 收藏 10 分钟

编辑导读:批量导入是在基础数据录入很常见的一个功能,即可以节省逐条新增的人力成本,又可以避免数据重复录入的问题,一举多得;但是模板处理不当,导入过程中不同报错导入失败,会让用户烦躁不安。本文作者带我们躲避设计里的那些坑。

一、明确的导入操作指引,减轻用户学习成本

  • 提供下载导入模板和导入模板的入口;
  • 下载和导入的模板入口在一个页面,避免出现点击“导入”,还要花时间找导入模板的情况。

常规设计如图:

批量导入很简单?看看要避开哪些坑吧

(提供下载和导入的模板)

二、 字段/字符详细说明,将导入失败的风险扼杀在模板设计中

1. 标注出必填和非必填字段

标注方式不限,可以为单元格角标(图二)、字段前加 “ * ” 必填符号(图三)、字体加粗或单元格颜色区别(图四):

2. 明确字符的类型,尽量细化字段的校验颗粒度

导入中常见的字符类型:

文本:对文本长度进行限制。

(若文本长度超出则报错警示)

数字:整数(是否必须为整数)、正负数(是否允许负数)、小数(明确限制小数点后几位),以上均需要进行提示说明。

特殊数字,如银行卡号,确保单元格为文本格式,不会出现科学计数法,否则后台校验无法通过,且用户录入数据会很苦恼。

(提前处理好数字的保存格式)

日期:规范时间格式,常见的有2020-07-24、2020/07/24、2020.07.24,但是用户实际使用的格式可能会超乎你的想象,毕竟很多人是不按规则出牌的。

所以格式有明确限制的,需要在模板中标明:

批量导入很简单?看看要避开哪些坑吧

(示例数据尽量列明模板允许的数据格式)

下拉框:可选范围固定的字段,设计下拉选择,可以避免用户手填错误信息的情况。

下拉选择的值确认是在系统的表结构中已经存在的,杜绝出现导入模板有农业银行,数据库银行表没有农业银行的情况。

也有可能出现用户直接从自己的excel表格复制数据,粘贴到模板中的情况,所以校验字段是否和表对应很重要。

(模板中设计好下拉字段可选范围)

特殊符号:模板中有限制中英文输入法的特殊字符,需要作出明确指示。

后者告知后台开发,对于中英文字符做兼容识别处理。

3. 锁定禁止删除的字段

以本模板为例:为了防止用户误操作,锁定了表头字段数据和第二排的示范数据。

这里需要和后台开发说明,示范数据已锁定,数据的导入校验从第三排开始。

(警示用户列表已锁定)

4. 附带单位

数据有单位的,最好是在字段后标注上,以免用户对数据格式产生疑惑或者自己单独在数字上加单位导致数据校验不合格,无法通过。

批量导入很简单?看看要避开哪些坑吧

(字段标注单位)

模板中可能会存在空格的情况,需要开发对空格进行处理。

避免正确数据因为有空格而校验不通过,导入报错而用户无法定位数据误差的原因发生。

小结:模板内字段的设计与限制,更多的是产品对excel功能的熟悉程度灵活运用,以及如何和项目的实际业务结合起来,协助用户在信息的新增环节避错。

三、报错给予明确提示,提示导入成功的概率和用户体验

  • 杜绝英文报错提示用户体验非常糟糕,很容易让用户认为系统崩掉了。
  • 尽量明确的进行报错提示,方便用户对错误数据进行处理后再重新导入。

常见的导入失败原因有:

  1. 字符格式校验不通过;
  2. 数据重复报错;
  3. 必填字段缺失;
  4. 导入模板错误;
  5. 数据量过大,系统卡死;

四、重复导入如何处理

1. 重复导入的定义

根据业务情况,确认具体哪些字段的重复属于同一条数据,需要判定为重复数据。

一般会根据数据的主键来定义重复数据。

如下图,员工个人信息以姓名和身份证号码合并为主键,构成唯一的员工ID。

如果后台校验到这两个字段一样,就不会再对其他字段进行校验。

(姓名和身份证号形成ID,相同则报数据重复)

2. 是否允许重复导入

1)对于重复的数据,需要根据实际使用情况,确认是否允许导入。

2)不允许重复导入,则需要明确报错提示。

重复导入的数据,处理方式可能有:用户删除重复数据后再次上传,后台报错提示。

批量导入很简单?看看要避开哪些坑吧

(明确指示重复的数据)

直接剔除掉模板中的重复数据,成功导入正常数据,页面无提示;这种方式明显减少了用户需要操作的步骤和内容,体验更友好。

3)允许重复导入,处理方式可能有:

覆盖原有数据,并且标记出变动的字段差异,甚至允许用户直接在页面上对重复字段进行修改后保存再次上传。

这种方式开发成本比较高,且仅适用于导入的数据量较小的情况。

批量导入很简单?看看要避开哪些坑吧

(页面修改重复字段后上传)

直接覆盖原有数据,且页面无标记;这种方式开发成本较低,也不需要用户再做判断,但是相应的可能会有一定的风险,比如用户误修改了个别字段直接覆盖了原有数据,导致其他环节出错。特别是涉及到财务结算的模块,慎用!

五、大数据量异步导入,节省用户时间

如果导入的数据量很大,或者校验的字段需要调用的接口比较多,同步导入会占用很大的内存。

且同步导入用户需要一直盯着页面,无法使用其他窗口;若网络发生故障或者其他原因,导致导入失败,需要再次重新导入,用户体验会很差。

所以对数据量比较大或者接口复杂的数据,可以采取异步导入的方式。

异步导入在条件允许的情况下,可以用进度条展示当前数据的传输百分比,预计完成用时。这样用户离开窗口再次回来查看的时候,明确估算回查上传的数据情况。

以上基本归纳了笔者在项目中踩过的“批量导入”坑,如有遗漏或者错误的地方,请大家指出。

 

本文由 @RaRa 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自 Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 你好,想问个关于题库导入的问题:
    1、后台导入模板只能用Excel么,word可以吗?
    2、导入后的内容,可以自动生成目录和内容么?内容需要带格式怎么处理?(例如,有些资料需要通过颜色,下划线,特殊字符标注重点)

    来自广东 回复
    1. word没试过,字段有规律可共用,应该是可以的。
      第二点,需要和开发探讨实现的难度。

      来自浙江 回复
    2. 好的,感谢

      来自广东 回复
  2. 组织架构层级

    回复
  3. 医药供应链

    回复
  4. 大量数据异步导入的话,能关闭当前上传弹窗吗?可以关闭的话,进度和状态可以在哪里查看啊

    来自浙江 回复
    1. 等待时间长的,可以关闭上传弹窗,可以给一个入口,显示当前上传进度,或者上传完毕后,另外消息提示。视业务情况而定。

      来自浙江 回复
  5. 导入还有一个巨大的坑,增量导入还是覆盖导入

    来自福建 回复
    1. 是的,这个我在salesforece里面看到了一个解决方案,就是在导入的时候,直接问你需要什么方式导入(新增导入/覆盖导入/更改导入),导入后的预期结果也会直接在页面中警示。这种方式的技术实现成本稍高一些,但是全面。

      来自浙江 回复
  6. 两个问题
    1.表有错误数据校验不通过时推荐导入失败,还是把没问题的先导入提示问题数据?如果回答是看情况而定,请分别举例场景。
    2.导入数据有100条错误,各条错法还不同,如何提醒?
    谢谢

    回复
    1. 这个的看情况,实际上是根据研发资源、项目周期、用户接受度来看的。如果有钱任性,都可以做先导入正确的,然后导出错误的内容(这一点比是否先导入正确数据更重要),并在导出模板中准确标注出具体错误原因,用户修改后再次上传,这样最快也最省事。

      至于分情况举例,可能有这些:
      1. 直接报导入失败,不做导入报错等其他处理 — 用户体验最糟糕,除非用户有能力自行判断导入的数据具体是哪里错了。不过如果是这种情形,用户也不太容易导入错误数据;非常不建议的做法;
      2. 页面给出导入错误原因,用户按照页面指示修改模板内容后再次重新上传 — 适用于数据量小、出错率低、且用户能接受此方式的场景;也是我目前项目中比较常用的形式;

      3. 先导入正确的,提示问题数据,这种又分为很多场景了:
      a. 仅提供错误数据导出模板,不标注具体错误原因 — 研发成本相对前者高一些;
      b. 提供错误数据导出模板,且标注出所有未通过校验的字段 — 研发成本最高,但方便用户快速定位错误问题;
      c. 支持直接在页面修改错误数据后重新上传 — 研发成本高,适用于数据量小且用户对字段熟悉度高,改动量小;

      所以你的问题2,看完解释应该心里也有答案了吧~~
      欢迎一起探讨哦~

      来自浙江 回复
    2. 谢谢,想的比较细,受用了

      来自湖北 回复