新闻搜索
新闻详情
盛煌-盛煌娱乐-注册-平台首页-B 端产品设计必看Excel 批量导入的知识点讲解(上篇)
作者:管理员    发布于:2023-03-03 19:11:19    文字:【】【】【

  盛煌-盛煌娱乐-盛煌注册-平台首页-B 端产品设计必看Excel 批量导入的知识点讲解(上篇)(主管:QQ66306964 主管:skype live:.cid.6c7b79dae5ec9830)当你接到一个 Excel 批量导入的需求时,你会怎么做?如何做,才能够让它更加完善?作者结合自己的一些做法,整理了一些我对 Excel 批量导入这一块的理解,希望对你有所帮助。

  上周五的时候,深夜在搞一个 Excel新博88娱乐 批量导入的需求,然后突然意识到这个导入需求不是那么简单的,甚至可以说任何一个导入需求如果要做到比较完善其实都不简单。

  然后突然就有了灵感,我把之前做过的一些导入的需求大概看了一下,然后整理了一些我对 Excel 批量导入这一块的理解,把一些可能容易被忽视的知识点给大家拆解一下。一方面是对我自己过往知识做一个总结,另一方面也是把这个东西做成一个 组件化方案 ,后续在其他场景要用的时候,直接拿来用就好了,最后也可以把这个东西分享给大家,让大家也能做到开箱即用。

  本文我打算拆成上下篇来讲,上篇是讲 Excel 导入的一些校验逻辑和补充知识,下篇再来讲怎么设计 Excel 的导入模板,怎么做一些好的交互体验。

  新博88注册

  一般来说,B 端产品的 Excel 的导入处理逻辑,可以拆解出这么几个步骤:

  既然有 4 个核心的步骤,那么也意味着这 4 个步骤都有可能会出错,我们可以对这 4 步分别梳理,确认一些比较常见的异常场景,然后给出对应的解决方案。

  模板文件格式不对,例如只支持 .xlsx,但是上传了 .pdf,就会报错;

  模板文件体积太大,例如仅支持上传 5MB 以内的文件,但是上传了一个 10MB 的文件就会报错;

  模板无法解析,由于一些 Excel 会加密,空白或者是已损坏无法打开,导致文件解析失败;

  模板数据量太大,例如只支持一次导入 5000 行数据,如果超过就会报错或者只取前 5000 条;

  模板格式错误,例如修改了模板的一些表头或者是列,导致无法解析匹配也会报错;

  字段校验失败,例如字符长度,字符为空,字符格式,字符校验规则不通过等,就会报错;

  字段重复,例如第一行和第二行的内容重复了或者大多数重复,就会报错(视业务规则而定);

  字段之间的逻辑关系不对,例如填了 A 字段,那么 B 字段就必须存在等,这些字段之间存在预设的某些逻辑关系,可以在校验模板文件中的字段这个阶段去做对应的判断,也可以放在业务逻辑层的时候去判断:例如结束时间必须要大于开始时间,A 列的值必须要小于 B 列的值等;

  导入的字段在系统中不存在,例如导入 SKU 库存,但是系统中不存在该 SKU,就会报错;

  导入的数据和要更新的数据不匹配,例如导入了订单的 3 条明细,但是订单实际只有 2 条明细,就会报错;

  用导入的数据去执行一些业务逻辑失败,例如批量更新单据的状态,但是单据是不可更新的状态,就会报错;

  在 Excel 导入的时候,数据量可能会比较多,如果 1000 条数据只要有 1 条失败,那么这 1000 条都不允许导入,那这种就是属于 全部成功 的逻辑,即要求全部成功才可以正常导入。如果 1000 条数据有 1 条失败,但是 999 条可以导入,那么这种就是属于 部分成功 的逻辑,总体来说,导入支持部分成功、部分失败,对用户的体验来说会好很多。

  如果是 全部成功 的模式,那么最好也是能将 Excel 所有的行数据处理完,然后将失败了的信息单独列出来,方便用户定位问题,修改模板。这里还需要注意一下,盛煌-盛煌娱乐-盛煌注册-平台首页-最好避免 挤牙膏式 的报错。如果某一行有多个错误,那么直接将所有的错误都呈现出来,不要一次只报一个错,然后客户反复修改,造成不好的体验。

  如果是 部分成功 的模式,那么导入之后会直接告诉导入的结果,成功了 XX 条,失败了 XX 条,还可以单独下载失败的内容。

  同步导入,就是在导入 Excel 的时候页面一直在处理中,需要等待导入完成之后才可以进行其他操作。

  这个是属于业务层的判断了,导入覆盖的意思就是导入的数据直接覆盖已有的数据,直接简单粗暴。

  导入更新则是每条导入的数据都要和已有的历史数据进行比较,如果有相同的就更新,没有就插入。

  具体自己看业务场景来取舍,一般来说导入更新的场景比较多,直接覆盖的比较少。

  Excel 是一个二维表,有 X 轴和 Y 轴,也就是行和列。每一列是从 A 开始一直到 Z,然后 AA 到 AZ 这样的顺序;每一行则是从 1 开始一直递增。A1 是一个坐标,表示第一行第一列;B3 表示第二列第三行……

  按表头名称匹配,就是预设的 Excel 模板,先解析出第一行表头的字段,然后用表头字段和系统的字段进行完全匹配,如果匹配上了,那么这一列就是特指某个字段了。表头的字段往往是第一行,可以理解为一个 Key,第二行开始就是 Value 了。

  按表头坐标来匹配,就是不一定把第一行当做表头的 Key,而是通过坐标来确定这个表头的 Key 是什么。例如第一行可以写一堆填表须知,然后第二行才是真正的表头,第三行开始才是 Value 值。那么 A2 B2 C2 就是表头字段,A3 B3 C3 往下的就是具体的值了。

  固定模板导入,就是我提前预设好对应的 Excel 模板,然后用户根据我的 Excel 模板来填写对应的字段,然后导入的时候按字段的名称去匹配或者按字段所在的坐标(A1:B1:C2)去匹配相应的数据,这种方式的大前提就是用户不能修改模板的顺序或者模板的字段名称等。也是最常用的一种导入的设计方案。

  解析模板导入,就是我根据你自定义的模板导入,然后我把你的列都解析出来,然后将你 Excel 的列和系统中存在的字段进行手动的匹配,匹配之后就可以保存为一个解析模板。后续再导入类似结构的 Excel 的时候就可以直接用这个模板去解析了。比较适合那种数据来源比较多,Excel 模板有很多种多样的场景。

  最后分享一些不错的 Excel 导入设计的竞品,如果你想在这方面找一些优秀案例学习一下,那么可以看看下面的几个竞品:

  今天在收集 Excel 导入相关的知识的时候,我突然脑海中蹦出来了这么一个词:叫作 组件化竞品 或者 竞品组件化 ,可以简称为组件化产品方案。

  新博88娱乐注册

  首先,什么是组件化?我们可以简单地把组件理解为完成某些特定功能的模板,例如 Axure 中的母版或者前端框架中的组件。

  它的特点是:聚焦于某个小的场景,解决某个小的需求,而且和复杂的实际业务本身没有太多耦合性。例如前端的一些输入组件,图片上传组件,还有产品的一些 Axure 组件等。

  那么,我们在再来看一下什么是竞品,竞品这个词产品经理们肯定是不陌生的。简单理解就是同行,相同的竞争者,我们都需要做相似的事情。很多时候我们关注的都是直接竞品,即做的业务和方向和我们很相似,系统方案上也大同小异的。但是除了直接竞品之外,我们还有很多时候会需要借鉴间接竞品或者非竞品的一些产品设计,例如一些大厂的交互设计,业务逻辑设计等。

  这两者一组合,就得出来了我想要表达的:通过一些组件来启发自己找一些竞品来参考学习,设计能提升自己工作效率的组件化方案。

  在日常工作中,我们能或多或少会做很多重复的事情,这些重复可能是重复自己,可能是重复别人,可能是重复之前的公司等,总之就是有很多事情的解决方案其实是可以拿来即用的。

  例如,登录注册相关的业务,基本上都大同小异,我在 A 公司做过一次,那么我在 B 公司的时候也需要做一遍,那我直接拿 A 公司的方案是最快的。同样的道理,Excel 的导入和导出方案也是属于一次整理输出之后,后续就可以直接复用,只需要做很小范围的改动。

  Excel 的导入和导出,这种设计方案是从多个竞品系统,甚至都可以不是竞品的系统上拿来借鉴使用,这就是 组件化竞品 的意思。

  花时间把日常的工作中可以抽出来作为 组件 的内容整理一下,然后分别找时间去查阅相关的优秀的解决方案(竞品),然后把它整理成一套可复用的 组件化竞品 ,后续要用的时候就可以做到开箱即用。

  这件事情,我大约是在 1 年前意识到,然后半年前开始践行的,所以大家会发现我的语雀知识库有很多经验的总结,其实就是 组件化竞品 的缩影。

  我叫维他命(Vitamin),微信公众号:PM 维他命,人人都是产品经理专栏作家。前 PHPer,做过在线 年多的跨境供应链方向的产品,现任某跨境电商 ERP 的产品负责人。主要专注于 WMS/OMS/TMS/BMS/ERP 等领域,分享跨境和供应链相关的产品知识。新博88娱乐

脚注信息
新博88娱乐网站 Copyright(C)2022-2032
百度地图 谷歌地图