后台根据前台传的对象批量修改功能_不想被开发怼就一定要牢记的批量导入设计方法...

28ad77eb6b37689580a94475416545a3.png

(全篇干货,阅读需10分钟左右)

通过导入excel表格批量创建数据,是后台产品必备套路之一。因为通过导入excel批量建数据,能够轻松应对数据量大的情况,对于业务人员来说实在是很方便。可是做导入excel表格批量建数据时,有一些问题总会让产品经理们很纠结,比如说:

若有表格的多次导入,是直接覆盖旧数据,还是只做新建数据?

导入的excel表格中数据有误,如何提示给用户?

如何通过excel导入有层级的数据和图片?

如何导入较复杂的excel表格?

本文将详细讲解这些在设计批量导入方案时普遍需要思考的问题,希望给各位一些思路。

一、重复导入excel表格时数据如何处理?

1.每次都覆盖旧数据

方法简介:不管系统内是否有已经建好的数据,每一次重新导入excel表格时,都覆盖旧数据,只以最新一次导入的表格中的数据为准。覆盖旧数据的实质,是将旧数据删除,并创建新导入的excel表格中的数据。

每次都覆盖旧数据的优点有两个:

<1>对于使用者来言,能轻松的更改旧数据;

<2>对于开发来说,难度和工作量也比较小。

从产品设计的角度来说,为了能更加方便的更改旧数据,最好再加上一个数据导出的功能,可以一次导出所有已建的数据,便于用户在导出的数据上修改之后再次导入。

而此种数据处理方式的缺点就是重新弄导入数据时,必须删除旧有数据再新建。

这一点比较致命,若存在与本系统数据联系紧密的其他系统,则建议不要采用此方案。原因是在实际操作中,在本系统创建数据后,这些数据会同步到另一系统。而如果在本系统再次导入表格,会删除旧数据,对另一系统造成较大影响。

举个例子来说,我们做一个生成课程的系统,这个系统可以创建直播课,且和另一个记录教师信息的系统关联紧密。在课程系统中每创建好一个直播课,信息会推送至记录教师信息的系统,以记录教师的上课时间、时长、课程内容等信息。若在创建课程内容的系统中采用每次都覆盖旧数据的方式做批量导入,就会对记录教师信息的系统造成混乱。比如有一些已经结束的课程,这些课程信息原本已经录入到教师的个人信息中,但一旦重新导入了excel表格,这些旧的课程数据也就被删除了,我们就不得不增加工作量恢复这些意外被删的数据。

因此,各位产品经理们,采用此种数据处理方式时最好先考虑好本系统和其他系统,或者本系统和前台展示的关系。不仅要考虑当前情况,也需要考虑一下未来有没有可能和其他系统产生紧密联系。若已经和其他系统有了紧密的关联,或者未来有可能产生这样的紧密关联,建议不要采用此种数据处理方式。

2.唯一标记数据并做数据更新

方法简介:对已建数据和导入的表格内的数据,通过某一个字段进行关联,对能够关联上的数据,在再次导入表格时仅做该条数据的更新;对无法关联上的数据,在再次导入表格时做数据的新建;对于导入的表格内没有,而系统内有的数据,不做处理即可。

举个例子,比如一个创建课程的后台,每一个课程的名称都唯一不可重复,想要做一个批量创建课程的功能。那么就可以在设计导入的excel表格时,增加一栏填写课程的名称。表格数据校验规则则可以设定为,若发现excel表格中的课程名称和系统内的课程名称相匹配,则直接将excel表格中该课程的数据更新到系统内同一课程下。若发现excel表格中的课程名称和系统内的课程名称不匹配,则在系统内新建该课程。若发现部分数据系统内存在,而excel表格内没有涉及,则不做处理。

此种数据处理方式优点很明显:

<1>支持用户通过导入excel表格更新数据;

<2>避免了第一种数据处理方式的缺点,若有与本系统联系紧密的系统,不会因为每次更新excel表格都删除旧数据而造成不良影响。

遗憾的是,此种数据处理方式对于应用环境也有较高要求。如果系统内原来并没有对数据的值的作唯一性要求,则不适合用此种数据处理方式。原因是当数据的值并不唯一时,使用此种数据处理方式需要制定很多的判断规则,且最终效果达不到我们选择此方案的预期。

比如说,在创建课程的系统内,并没有要求课程名称不可重复,系统内已经存在名称重复的课程。那么在导入数据时,若存在表格内课程和系统内多门课程名称一致的情况,我们需要判定到底给哪一门系统内已存在的课程做数据更新。而一旦制定这样的判断规则,如每次都只更新创建日期最新的课程,我们几乎可以断定这不符合业务场景。更甚至,我们无法判定,在表格内数据和系统内已有数据名称一致时,业务方想要的到底是新建此门课程还是更新此门课程。

因此,在系统内数据不存在唯一标识时,建议不要使用此种方案。

3.每次导入excel表格都只做新增数据

方法简介:不管系统内有没有旧数据,也不管导入的excel表格内的数据和系统内的旧数据是否能匹配上,每一次重新导入excel表格时,仅在系统内新建表格中的数据。

如在创建课程的过程中,建好了一个内有5门课程信息的excel表格,则每一次重新导入这个表格,都会新建这5门课程。

此种方式的优点是:

<1>避免了复杂规则的制定;

<2>对于系统环境的要求较低,不要求系统内数据的唯一性。

然而,此种数据处理方式缺点很明显,即我们不能通过导入excel表格的方式更改已创建的数据。这意味着我们必须要做单条数据的修改页面。

如果大家出于赶工期的目的,想要在导表批量创建数据和线上单条创建数据两种方式中,先选择一种完成上线,并想要选择此种数据处理方式导表批量创建数据,那你将会遗憾的发现,这和直接把批量创建数据和单条创建数据两种方案都完成上线的工作量差别并不大,因为我们仍需要做单条数据的修改流程和页面,近似于单条创建数据的流程和页面,和直接把线上单条创建数据的功能做完也差不多了。

4.小结

以上是重复批量导入excel表格时的三种数据处理方式,各自的优缺点都非常明显,有各自适用的场景。大家在选择的过程中可以分析自己系统的具体情况,以选择适合自己的方式。

二、数据有问题时如何报错?

1.页面提示错误信息

方法简介:此种报错方式具体是指用户导入excel表格之后,即将表格内容显示在前端页面,显示方式可以由产品和交互定义。

比如说以列表的形式展示所有导入的数据。程序发现导入的数据中存在不符合规范的数据后,在前端页面的列表中将该数据标红进行提示。用户看到提示的错误内容后,可直接在线上进行编辑,修改错误数据。全部数据正确后,可由用户手动确认无误后,再在后台创建数据。

此种提示方式的优点在于:

<1>用户导入的数据中错误较少时修改很方便,不需要再次操作excel表格,在页面上修改即可;

<2>由用户手动确认数据,可让用户复查数据,避免错建。

相对的,它的缺点在于:

<1>如果用户错误的项较多,让用户在线修改没有直接修改excel来得简单;

<2>对于开发来说,此种处理方式工作量大,如果工期紧张,不建议使用此方案。

2.返回一个excel表格告知用户错误信息

方法简介:在给用户提示导入表格中的错误信息时,可通过给用户返回一个excel表格的形式提示用户错误数据,如下图所示:

a28616333e4b77b886213ffce03bf6c9.png

若采用此种方式给用户提示错误信息,产品需设计返回的错误信息表格的格式。比较简单的一种格式时,直接在用户上传的excel表格后,新建一栏【错误信息】,将本行内的错误信息全部显示在行末的【错误信息】一格中。用户根据提示可直接在下载下来的表格中进行修改,修改完成后可直接二次上传表格。对于【错误信息】一栏,可不要求删除,只要和开发说读取数据的时候仅读取要求的内容项即可。

此种提示方式的优点在于,当用户的错误数据较多时,可让用户方便的操作excel表格修改数据。

缺点在于,对于用户操作来说,步骤较为复杂,需要用户下载错误信息表格,再进行操作。

3.弹窗提示用户错误信息

方法简介:此种方法开发量最小,即在导入excel表格后,若发现导入的数据有误,直接弹框提示错误的值。

弹框提示分为两种,逐条提示(一次只提示一个错误,修改该错误之后,再次上传,若还有错误,则再提示下一错误)和全部提示(一次提示全部错误数据)。

显然,一次全部提示所有的错误数据对于用户体验来说更为友好。

4.小结

这三种错误数据提示方式,从用户体验的友好程度来说,可以这样排列:

页面提示错误信息>返回一个excel表格告知用户错误信息>弹窗提示用户错误信息

相对的,从开发工作量来看,可以这样排列:

页面提示错误信息>返回一个excel表格告知用户错误信息>弹窗提示用户错误信息

因此,是偏向于更快的上线,还是偏向于更好的用户体验,各位产品经理可在具体项目中权衡决策。

三、如何批量导入有层级的数据?

有层级的数据是指在系统内数据不是以平铺的方式存在,而是有一定的结构。大家可以想一下我们教辅材料的目录:

f33864825017dfb8dc84010a96319190.png

像这样,课程内容按照单元—课文的结构组织起来,每一篇课文都有它所属的单元,就叫做有层级结构。在后台的实际应用中,有层级结构的数据十分常见。比如在创建课程的后台,一般会允许在课程中创建一定的结构,以满足老师的教学要求;在创建商品的后台,一般会有一些商品分类,便于管理商品。

有层级结构的数据,也可通过导入excel表格的形式进行批量导入,只需要产品经理规划好导入的excel表格即可,如下图:

a802d4344d90dc516fd821231c46bc7f.png

数据的层级结构可以放在前几列,若数据有好几级,则可以将前几列命名为:一级目录、二级目录、三级目录,将层级之下的数据列放在目录的后面。

通过excel表格批量创建有层级的数据时,同样需要考虑表格多次导入时数据的处理方式:若采用每次都覆盖数据或者每次都新建数据的方式在,则逻辑比较简单;

若想要采用唯一标记数据并更新数据的方式,则最好保证层级也存在唯一标识。

举个例子,我们想用层级名称作为层级的唯一标识,而系统内没有规定层级的命名不可重复,且已经存在重复的层级命名,则再使用此种方式就需要制定复杂的数据处理逻辑,如当已有的数据中存在两个层级的名称相同,那么我们需要定义导入表格时给哪一个层级的数据进行更新等等。总之,当系统内数据没有唯一标识时,就更不建议用唯一标识数据的方式来处理多次导入的有层级结构的表格了。

四、如何通过Excel表格批量导入图片?

在后台系统中,时常有字段会要求上传图片,遇到这种情况时,通过excel表格批量导入数据就有一点麻烦了。但其实通过Excel表格批量导入数据到系统并非不能实现,只是有一定的技巧。通过excel表格导入图片时,需要先将图片转化为图片链接。将图片链接添加到表格中,再上传表格,即可实现批量导入图片。

我们一般将图片存到本地时,图片是没有生成图片链接的,只有储存路径。大家也不需要担心,有专门的程序可帮助大家将图片转化为链接。在这里也告诉大家一个不需要专门的软件即可将图片转化为链接的方法。我们先将图片上传到QQ空间,然后找到图片单击右键选择【属性】,在属性下就可以看到设置出来的图片的网络连接地址了。

五、关于较复杂的excel的导入

这一部分主要讲解的是对于较复杂的excel表格的制作方法。这些较复杂大的excel表格的导入方法和前文是一致的,并没有什么特别之处。

1.如何导入可下拉复选的excel表格

导入可下拉复选的excel表格,主要的难点在于我们首先需要制作一个可下拉复选的excel表格作为导入模板。这里给大家指路一篇传授传授如何做可下拉复选的知识的文章

adeafperson:用excel做下拉多选菜单​zhuanlan.zhihu.com

我们可将希望用户使用的字段值添加到excel表格中,制作成excel模板,传到系统中。用户使用时可直接选择下载模板,然后在模板上进行操作做,避免此种excel表格给用户带来的学习成本过高的问题。

2.如何导入可二级联动的exxcel表格

和上一点相同,我们想要导入一个二级联动的excel表格的难点其实在于我们需要制作一个可二级联动的excel表格作为导入模板,同样给大家指路一篇文章excel 二级联动 - 搜索结果 和上一点相同,我们想要导入一个二级联动的excel表格的难点其实在于我们需要制作一个可二级联动的excel表格作为导入模板,同样给大家指路一篇文章

如何用excel设置二级联动下拉列表?​www.zhihu.com
9c0a7e6c108e5f02aadf2db028174806.png

同样将设定好的字段值放入excel表格中,作为模板上传到系统,可供用户下载使用就好啦。

以上是笔者在设计后台批量导入数据时一些经验的总结,希望能够给大家的日常工作提供一些帮助。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值