天天看点

如何轻松搞定导出功能设计

作者:人人都是产品经理
在上一篇文章中,我们分享了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种情况:

  1. 多个患者信息导出到一个word文件,涉及到跨页时,每个患者通过分页符另起一个新页。
  2. 一个患者导出一个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、确定导出的内容有什么:

  1. 文件内是否有报表名称?
  2. 文件内是否要添加导出数据的导出范围、字段解释?
  3. 如果导出的数据用于批量修改再重新导入,是否需要把导入模板中的说明同步在导出模板里也加上。
  4. 确定导出表格的表头,列名是什么?列名如何排列?

2、确定每行数据展示逻辑是什么:

  1. 当查出多行时,是否需要合并上下行?
  2. 数据在excel中的排序是什么?

3、每个字段的展示逻辑是什么:

1)当一个字段中会有多个值时是分单元格展示,还是拼接展示在一个单元格中。

2)如果单元格字段需要拼接,拼接的格式是什么?

3)当数据库中存的是枚举值,需要怎么转换?如「是否删除」,数据库存的是0、1,0代表否,1代表是;那导出的excel中展示为「是、否」还是展示成「已删除、未删除」。

如何轻松搞定导出功能设计

对于Word格式:我采用的方式是确定好导出模板,然后通过「文档内说明 + 批注」的方式,对每个字段进行解释说明。示例如下图:

如何轻松搞定导出功能设计

07 导出的交互方式

在确定导出的功能交互方式前,会直接影响交互方式的就是导出的处理方式:

同步下载 or 异步下载

同步:

导出开始后,用户只能等待导出完成后才能进行其它操作。适合文件较小、导出时间较短的情况。

开发周期短。

异步:

导出开始后,可以去进行其它操作,不会影响在页面中的其它操作。

适合大文件下载、下载过程中需要进行其它操作时,可以选用这种方法。但是开发周期比同步下载开发周期长。

另外,在web浏览器的导出和客户端的导出也会有些不同,一般有以下方式:

1)交互方式1:

同步下载 + web端:

选择数据 → 导出数据 → 调用浏览器下载 → 页面加载 → 下载完成

如何轻松搞定导出功能设计

同步下载 + 客户端:

选择数据 → 选择存入的系统文件夹 → 客户端下载数据 → 页面加载 → 下载完成

如何轻松搞定导出功能设计

2)方式2:

异步下载 + web端:

选择数据 → 导出数据 → 程序后台进行处理数据 → 处理完成后发出通知 → 用户选择下载 → 调用浏览器下载

如何轻松搞定导出功能设计

异步下载 + 客户端:

选择数据 → 导出数据 → 程序后台进行处理数据 → 处理完成后发出通知 → 用户选择下载 → 选择存入的系统文件夹 → 下载完成

如何轻松搞定导出功能设计

常规的交互方式一般是这些,当涉及到修改导出文件名称、选择导出字段范围、导出格式的选择时,在流程中添加步骤即可。

总结

我们说了导出文件的一些内容,在实际场景中还是有很多情况要注意,我一直坚定的相信:只有小功能,没有小需求。

在做产品设计时,再小的功能也需要好好思考。

本文由人人都是产品经理作者【王大鹿】,微信公众号:【产品大鹿】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

继续阅读