如何轻松搞定导出功能设计
在上一篇文章中,我们分享了excel的导入功能设计。那文件的导出,是不是也有这么多需要注意的点呢?确实是。这篇文章,我们就来详细看看,在做导出功能时,都有哪些需要注意的点。
导出功能也是相当常见,需要关注的点也很常规。
但是,只有小功能,没有小需求。
往细了抠,注意点也是有很多的,我们展开说说。
01 导出前
最重要的一点:是否涉及到敏感数据?
- 个人信息相关的:身份证号、手机号、住址、姓名等
- 机构的关键性数据:这就多了,金融类中的交易流水、客户信息等,教育类中的学生信息、医疗类的患者病历、处方信息等等。
比如我之前做医院业务的时候,院方不定期让我们导出很大量处方数据,系统导出时都是挂,所以我们只能数据库导出。
但是「处方数据」完全是敏感数据,涉及到统方。
让我们导敏感数据,一旦数据泄露就会有很大风险,所以每次导出,我们都会让现场实施人员找药剂科、信息科签字,然后我司内部再找领导们签字。最后将数据加密后提供出去。
02 为什么导出?
导出数据的目的是对导出的内容进行二次处理,绝对不是导出完成就结束了。
比如:
1、导出后数据进行数据分析
比如导出excel后后然后进行数据分析,查询功能无法满足需求时,则导出数据,人工进行数据分析。B端数据导出是一个非常常见的功能。
2、导出数据处理后再导入
我之前做医疗数据时,医院需要每月上传数据至国家监管平台。我们系统可以按照监管平台支持的导入格式进行导出,然后医院工作人员再将导出的数据导入到国家监管平台中。
3、导出数据打印
比如导出word单,然后打印出来进行留存或者是线下填写。
4、导出数据后分享数据
比如剪映剪辑完视频后,将视频再发送到抖音。
总之,导出只是其中一个阶段,接着会跨系统进行处理,使用其它的处理软件二次处理数据,涉及到使用其它软件,就需要按照其他软件能够支持的方式进行处理。
最基本的一点就是导出格式。
03 导出格式
导出的格式太多了,docx、xlsx、pptx、pdf、jpg、mp4等等~
文件格式有哪些,导出的格式就有哪些。
我们看下常见的导出格式:
docx、doc、xlsx、xls、csv、pdf
我们需要根据导出文件的应用场景,以及每个格式的特性、使用频率、兼容型等方面,确定导出的格式。
这就涉及到 2 种方式:
1)固定导出格式
导出的格式固定,如导出excel就是导出xlsx格式。这种方式是最常见的,对于后台产品,当涉及到导出报表数据时,直接使用xlsx,问题都不大。
2)用户自定义导出
格式结合能用户满足二次处理的格式,让用户选择自己想要的格式。对于很多工具类产品,为了支持用户多样化的处理方式,导出的格式都是可以选择的。
我之前遇到过一个场景,有些医院的电脑还是xp系统,只有Excel2003。我们系统只能导出xlsx格式,但是Excel2003打不开xlsx格式。
再结合其它原因,最后我们做了个可以选择导出 xls 或 xlsx 格式的功能。
04 导出文件划分
是指把文件划分出层级。比如导出excel,可以同时导出多个文件,每个文件内1个sheet页。也可以导出一个文件、文件中有多个excel。
对于文件层架划分,可以分为2种情况:
1)从需求设计考虑
根据需求方案,确定导出文件的层级。
如导出时需要同时导出2份表格数据,一份是统计结果,一份是统计明细,我们可以导出一份Excel文件,文件内有2个sheet页。
当同时导出多个文件时,可以采用导出压缩包zip的方式。
我曾经遇到个需求:药师在查房时,需要使用纸质的「临床药师查房记录表」。先打印出含有患者信息的记录表,然后再查房时拿笔填写。这就要求我们系统可以导出记录表,由于药师还会存在编辑电子版的需求。
所以我们将导出格式定为docx。
对于导出word的层级,这就涉及到2种情况:
- 多个患者信息导出到一个word文件,涉及到跨页时,每个患者通过分页符另起一个新页。
- 一个患者导出一个word文件,同时导出多个时,导出压缩包。
最终我们使用的是多个患者导出到同一个word文件中,满足用户批量打印,同时在一个word文件可编辑电子版信息,不用打开很多个。
2)从性能考虑
在导出文件时不可避免的会有很大数据量的情况,会存在导出时间过长,导出文件体积过大的情况。
我们以「导出excel」需求为例,在导出时,研发一定会问最大可以导出多少行?
这个时候产品经理可以评估,导出数据量的会有多少行,确定一个最大行数。
对于行数,我提需求都是最多5000行,但是这个并不是标准,需要结合导出是同步还是异步、服务器性能等角度一起判断 。
但是这个时候存在一个问题:当导出数据超过最大行数时如何处理?
可以只导出前5000行,或者是后5000行。可是这样导出的数据就缺了一部分,保证不了数据完整性。
对于这种情况,我们可以采用2种方式:
1)当超过最大行时,再导出一个文件1-5000行数据是一个文件,5001-10000行是另一个文件, 最终导出一个含有多个文件的压缩包。适合导出列数较多的情况,每个文件体积较小。
2)超过行数时,划分sheet页。sheet页1是1-5000行数据,sheet2页是5001-10000行数据,最终导出一个xlsx文件。适合需要通过来回对比的数据,通过切换sheet页即可。
最终选择的方式,大家根据实际需求自己判断就好。
在这个时候,需要确定导出文件的默认名称,我一般是默认名称 + 导出时间。
05 导出权限
在刚开始我就就提到了数据的敏感性,为了保证数据的安全性,不可避免的涉及到数据的权限。
对于数据权限分为:
1)角色功能权限
权限控制到按钮级别,确定哪些用户或角色有权进行数据导出操作。
2)数据范围限制
确保用户只能导出其具有权限的数据。可以通过基于角色或数据所有者的权限进行限制,实现数据范围的过滤,确保用户只能导出其特定范围的数据。比如说店长只能导出自己店铺的数据;区域管理员可以导出所管区域的数据。
3)导出字段限制
限制用户在导出文件中可以看到的字段。
如导出Excel时只能导出权限范围内的列数据,让导出的数据不具备完整性。
比如说销售数据,普通店员可以看到销量,对于店长,可以看到销量、毛利率。
同时,还有对导出频次的限制,导出数据的日期范围限制、导出日志记录等,大家都可以考虑在内,在这不赘述了。
06 导出模板的制定
当导出的内容涉及到固定格式的时候,产品经理有必要明确最终导出内容的格式。
确定具体的格式排版,导出的字段名称、每个字段的取值来源、每个字段显示的格式等等。
提供出一个含有解释说明的导出模板,让研发对着导出模板开发,让测试对着导出模板测试。
对于Excel导出:
1、确定导出的内容有什么:
- 文件内是否有报表名称?
- 文件内是否要添加导出数据的导出范围、字段解释?
- 如果导出的数据用于批量修改再重新导入,是否需要把导入模板中的说明同步在导出模板里也加上。
- 确定导出表格的表头,列名是什么?列名如何排列?
2、确定每行数据展示逻辑是什么:
- 当查出多行时,是否需要合并上下行?
- 数据在excel中的排序是什么?
3、每个字段的展示逻辑是什么:
1)当一个字段中会有多个值时是分单元格展示,还是拼接展示在一个单元格中。
2)如果单元格字段需要拼接,拼接的格式是什么?
3)当数据库中存的是枚举值,需要怎么转换?如「是否删除」,数据库存的是0、1,0代表否,1代表是;那导出的excel中展示为「是、否」还是展示成「已删除、未删除」。
对于Word格式:我采用的方式是确定好导出模板,然后通过「文档内说明 + 批注」的方式,对每个字段进行解释说明。示例如下图:
07 导出的交互方式
在确定导出的功能交互方式前,会直接影响交互方式的就是导出的处理方式:
同步下载 or 异步下载
同步:
导出开始后,用户只能等待导出完成后才能进行其它操作。适合文件较小、导出时间较短的情况。
开发周期短。
异步:
导出开始后,可以去进行其它操作,不会影响在页面中的其它操作。
适合大文件下载、下载过程中需要进行其它操作时,可以选用这种方法。但是开发周期比同步下载开发周期长。
另外,在web浏览器的导出和客户端的导出也会有些不同,一般有以下方式:
1)交互方式1:
同步下载 + web端:
选择数据 → 导出数据 → 调用浏览器下载 → 页面加载 → 下载完成
同步下载 + 客户端:
选择数据 → 选择存入的系统文件夹 → 客户端下载数据 → 页面加载 → 下载完成
2)方式2:
异步下载 + web端:
选择数据 → 导出数据 → 程序后台进行处理数据 → 处理完成后发出通知 → 用户选择下载 → 调用浏览器下载
异步下载 + 客户端:
选择数据 → 导出数据 → 程序后台进行处理数据 → 处理完成后发出通知 → 用户选择下载 → 选择存入的系统文件夹 → 下载完成
常规的交互方式一般是这些,当涉及到修改导出文件名称、选择导出字段范围、导出格式的选择时,在流程中添加步骤即可。
总结
我们说了导出文件的一些内容,在实际场景中还是有很多情况要注意,我一直坚定的相信:只有小功能,没有小需求。
在做产品设计时,再小的功能也需要好好思考。
本文由人人都是产品经理作者【王大鹿】,微信公众号:【产品大鹿】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
文章很赞