


















数据批量导入功能,是许多B端产品的“刚需模块”,也是产品设计中的“高风险地带”。本篇文章将结合真实项目经验,拆解导入功能的常见坑点与设计要点,帮助产品人构建更稳定、易用、可控的导入机制。

在B端后台产品中,批量导入是非常常见的功能,一个好的数据导入功能可以大大的提高用户的工作效率和满意度,反之则让用户觉得平台不好用。
因此,批量导入乍看简单,但如果你只是觉得放一个上传按钮,让用户选择文件导入就行的话,就等着被开发吐槽吧!只要做过批量导入,你就会发现实际做起来里面的坑着实不少。例如:
我们可以将数据导入流程拆解为三个核心环节:导入指引、导入文件和结果反馈。接下来,我们将围绕这三个环节,逐一解析各环节的关键注意点。
导入指引就是让用户知道要导入的内容是哪些,规则是什么,并给出一份导入模板文件。
也就是对导入的内容进行说明,明确导入的规则、文件类型、文件大小等。
一般分为直接导入和分步骤导入。如果导入过程并不复杂,直接导入即可;如果流程比较长,需要给出一条明确的步骤指引,可以分步骤导入。

直接导入示例(左) 分步骤导入示例(右)
模板最重要的就是写清楚填写规则。对一些重要的、不易察觉的系统要求,做进一步解释,引导用户正确填写数据。可以用以下6种方式进行模板填写规则的设计,可以混合使用,比如我们可以在模板前几行写上文字说明,也会给用户提供填写示例。
1.用单独一个sheet进行说明。

2.在模板前几行写清楚规则,方便用户在填写表格前阅读。此外这里的说明支不支持用户删除,要说明清楚。

3.在字段后面直接写上文字说明。

4.在字段后面用插入批注的方式。

5.对模板的字段做好格式限制。
6.给用户提供填写示例,比如新增加一行或几行示例数据,让用户知道怎么填写。
系统中已有数据的情况下,本次导入方式是“全部覆盖”还是“部分覆盖”,也就是完全覆盖系统已有的数据,还是在其后添加数据。具体选择哪种要依据实际业务场景,部分情况下也可以让用户自己定义。
全部覆盖:指最新一次导入的内容会现将已有内容清空再导入。
部分覆盖:指最新一次导入内容已经存在在系统中时,数据以最新导入为准或者直接跳过;系统中有但是最新导入内容里没有的数据,继续保留在系统不会被清空掉;而系统中没有但最新导入内容里有的数据,则增量加入系统。
这里还要注意重复数据的问题,视具体情况来定,可以分为以下3种情况:
在用户导入文件后,系统就会开始进行校验,主要分成两步,第一步是校验文件格式,第二步是校验数据内容合法性。由于数据合法性校验会比较慢,为了降低服务器侧的压力,我们在文件格式校验不通过后会直接返回错误信息,没必要再进行后续合法性的校验。
在写入数据前,首先会校验文件的基本格式是否符合规范,如果不符合则需提示用户检查上传的文件并重新上传。一般会有如下规则:
1.格式:常见的表格格式是xls、xlsx和csv,其中csv是纯文本格式,上传更快,当上传文件需要支持大量数据时可以使用csv格式。这个在本地选择和拖拽上传的时候就可以过滤掉,比如本地选择只展示excel文件,其他格式的文件自动过滤。
2.大小:为了节省服务器的空间和提高文件传输的速度,需要限制上传文件的大小。尽量不要超过10M,不过这一点可以提前跟研发同事商量对齐。
3.名称:当上传与要求的文件名称不一致时则报错。如果文件名称没有特殊作用,不建议对名称进行校验。
4.表头名称和字段顺序:当字段列名称、顺序和模板不一样的时候,则提示模板不对。
5.行数:对用户上传的行数是都有限制,比如最多上传2000条记录,超过2000条就要报错。尽量支持最大值,让用户可以一次性导入成功,而不是让用户多次导入。
1.数据是否为空:如果数据为空这个时候不需要处理,直接提示:文件数据为空,请补充数据后再上传。
2.基本要求不满足:导入模版中有要求值的字符类型、字符长度、业务规则限制,但导入文件就中的值不满足。
3.找不到匹配的值:导入文件中的部分字段的值,要求在已有数据表中存在,如果找不到,会导致该数据找不到对应的归属主体。如导入文件中“项目ID”的值,在项目表中找不到。
4.与其他字段的关联关系错误:某几个字段的值之间有联动关系,但导入文件中的值联动关系错误。如项目所在地,分省、市、区3列,若省的值为浙江,则该条数据中,市的值必须是浙江省的地级市,不允许出现了其他省的市。
这里有两种情况:
如果导入内容相互独立,我们都选择2,否则会导致绝大部分完全正确的数据无法快速录入系统,之前校验的结果都无用,造成资源浪费;如果导入内容有某种关联或者是敏感数据,比如顺序不能变,那就得选1。
1.错误信息在平台上直接修改。适用于数据量不是很多,不存在敏感信息的情况。

2.提供错误清单,修改后再重新上传。适用于数据量比较大或者存在敏感信息的情况。也就是在导入表格后面增加一列“导入失败原因”。

3.提供导入历史记录,从记录中导出失败文件,修改后再重新上传。出于安全考虑,可以提供导入导出记录,方便问题跟踪,比如一些敏感的财务类数据,用户可能会对系统的准确性产生质疑,通过保存导入的记录和源文件,可以帮助我们对比是客户提供的数据的问题还是系统的问题。

需要记住:批量导入功能最基础也是最重要的要求就是一个数据也不能错。除了上面说的之外,还需要考虑以下几个方面:
本文由 @树袋熊 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。