最近正在做数据导入的需求,因为竞品比较少,没有发现体验极佳的产品体验,所以一路摸索起来还是蛮艰辛的,陆陆续续好些天才最后确定这个需求设计和交互,正好分享出来給需要的人。

数据的批量导入细说起来是一个低频的需求,可能更多的为了沉淀信息的一个一次性导流。场景常见的是两种,一种是从一个项目管理软件迁移到另一个项目管理软件,这是一个完整的导出之后导入的过程。另一种是针对一些职能团队,之前用exel等管理项目或者待办,一次性迁移到平台里。这两种情况都需要给用户一个很简洁易用的批量导入方法。

最开始的设想是做一个excel模版,在模版中限定与系统字段相一致的列名称及字段类型,如比较常见的数字,时间等字段。但是方案直接被老大pass掉了,其实细究起来确实是很麻烦,用户需要在excel里面先把希望上传的字段整理好,再上传,这个过程系统相对会容易开发,但是用户会觉着很操蛋。需要先把所有信息粘到预定好的模版里,才能上传。但是这种方式开发成本其实相对低很多。

定版的方案开发成本比较高,两个后端做了4天,前端做了两天,这还不包括连调的时间。最后定版的方式是先告知用户一些简单的规则,如日期字段上传YYYY-MM-DD格式,多个信息需要用“,”号分割等等。先让用户上传一个excel,然后把系统的字段枚举出来,让用户自己去做映射,对应想要上传的列。因为我们做的是内部管理软件,所以不是很方便贴图,所以这里只能文字描述一下。对应之后,点击上传,这个时候才开始批量导入,第一步只是抓取了excel第一行的表头信息。导入之后,如果符合要求的行我们会直接上传到面板里,如果是不符合格式要求的,系统会把字段吐出来,并附带错误提示信息,引导用户下载错误信息修改后重新上传。其实在这也争论了好久,最初的设想是告知用户多少成功,询问用户是否先上传成功的行,失败的行修改后上传,但是随之可能会引入重复上传等问题,最后我们机智的后端哥哥提出,把可以上传的直接上传,只吐出失败的行和错误提示,避免了很多不必要的问题。

因为目前我们的导入功能还没有上线,所以最后会不会出现很多吐槽或者其他问题我现在也是不清楚的,如果最后的方案有坑,后续我也会分享出来給大家。