导入导出设计(导出篇)

前言

导入、导出作为一个B端常见功能点,看似简单,考虑不全面很容易踩坑,之前做ER有做过批量导入新增产品功能,后续又优化SaaS的下载功能;现整理设计要点,作为一个可复用的文件,以便后续设计需要。

业务分析

  • 开始设计之前仍需先了解业务背景,挖掘使用者导出数据的动机,方便功能设计时,采取更贴近实际业务场景的方式,以及一些细节设计;比如说,一般导出数据可能有以下场景:
  1. 导出数据进行数据分析,数据分析时更在意数据的完整性,数据缺失可能导致分析不全面,并且导出的文件中数值或金额字段需注意为数值格式,导出后无需进行格式转换可直接分析;另外,数据分析可能是一个周期性行为,是否需要支持设置规则定期自动导出?
  2. 导出数据进行数据管理,需要修改数据后在导入系统,这种情况导出的文件同时也是导入的模板,我们就需要着重考虑表头字段的格式,提高可操作性,降低编辑错误率,例如设置导出字段列的单元格格式:时间只能是日期格式,数据只能是数值格式,选项固定的字段需设置下拉列表等,即不仅要考虑导出,还需要考虑导入的设计要点
  • 分析导出过程中可能存在的问题:

导出前:

  1. 同步导出还是异步导出?
  2. 支持导出文件的格式?
  3. 支持导出文件的大小限制,文件体积大小,单次导出数据量大小?

导出中:

  1. 导出数据范围是否支持自定义?
  2. 导出字段是否支持自定义?
  3. 导出字段格式定义
  4. 导出时是否需要考虑导出关联信息?
  5. 敏感信息导出时是否需要特殊处理,比如导出客户数据时,客户名称用客户id替换
  6. 是否存在特殊格式导出?比如附件、图片等
  7. 目标导出内容是单表头还是复合表头?

导出后:

  1. 导出进度、结果怎么返回给用户?
  2. 超时、程序报错或异常等报错处理
  3. 是否显示导出记录?
  4. 导出数据顺序,同列表排序?
  5. 导出数据量超出最大单次可导出数据量,怎么处理?不支持导出,失败或分多个文件导出?

功能设计

了解了业务场景,罗列出对应问题,那接下来就逐一突破。

1. 基础信息定义

导出文件命名

导出文件命名通常包含以下主要信息:导出内容、操作人、操作时间,命名示例:订单报表_张三_20230420,也可加入其他信息方便快速识别导出的文件,具体可根据实际业务场景制定;为避免命名重复,可以在结尾增加随机数;或者直接用(1)(2)等标识区分

注意:
多数文件(excel/word等)命名不得包含部分特殊符合 \ /:* ? " > < |,否则可能导出失败

导出文件格式

  • 导出小文件,可直接按源文件格式导出
  • 导出数据量大或单次需要导出多份文件时,可按压缩包形式导出

导出文件大小

1)若导出文件为excel,Excel表格不同版本最大行数和列数都会不一样,还需考虑实际导出速度、导出数据可读性等因素,查询资料后建议导出文件做如下限制:

  • 单次导出数据不能超过20000条,每5000条数据保存为一个Excel文件
  • 单次导出数据不能超过400万个单元格

Excel 2003版:列数最大256列,行数最大65536行;
Excel 2007版:列数最大16384列,行数最大1048576行;
Excel 2013版:列数最大16384列,行数最大1048576行

2)若导出压缩包格式,建议单个压缩包大小不超过1G,压缩包内附件数量不超过100个

2. 导出机制定义

同步 or 异步导出

同步、异步处理的差异,可参考 导入导出设计(导入篇)中第2点说明,原理都是一样的,这里不再赘述

  • 适用场景(包含但不仅限于以下场景):
同步/异步适用场景
同步导出数据量较小,导出数据逻辑较简单,适合实时导出
异步导出数据量较大或导出数据关联表格较多,逻辑复杂,导出时间较长,为避免用户长时间等待,可采用异步导出

注意: 这里的数据量大小怎么界定?
可以通过用户愿意等待的时间界定:单次下载文件等待10s以内是用户可接受的,这里就简单地以10s为界限,即10s为系统用户愿意耐心等待的时间。

  • 数据量小指单次导出用户需要等待10s以内即可下载
  • 数据量大指单次导出用户需等待10s以上

导出数据范围定义

一般情况下,所见即所得原则,导出目标页面内所有数据即可,有特殊要求也可在导出时选择要导出的数据范围,根据实际业务情况而定;什么情况下需支持自定义导出数据范围内,说明如下:

  • 适用场景(包含但不仅限于以下场景):
  1. 实际需要导出数据范围 远大于 目标列表数据量 :若不支持自定义导出,则导出前需要先筛选等待页面返回结果后再导出,延长了等待时长。
  2. 列表存在关联数据,自定义关联数据是否导出
  • 交互设计方案:
  1. 按照所见即所得原则,支持导出筛选后的数据
  2. 在目标页面通过勾选页面数据后导出
    注意,该方案存在限制,勾选数据导出时,仅支持勾选当前页的数据,不支持跨页勾选数据
  3. 导出页面/弹窗内,支持自定义导出范围

导出字段范围定义

导出数据时,默认导出所有字段还是页面展示字段,或支持自定义导出字段,需考虑清楚;那什么情况下需支持自定义导出字段呢,说明如下:

  • 适用场景(包含但不仅限于以下场景):

目标导出数据字段很多,避免导出后列表字段列过多不利于查看,可支持自定义导出目标字段

  • 交互设计方案:
  1. 按照所见即所得原则,直接导出目标页面内展示的字段,此时在页面内自定义显示字段后导出即可
  2. 导出页面/弹窗内,勾选需要导出的字段

多文件导出

  • 适用场景:
  1. 当前导出目标数据存在关联列表或附件,可导出压缩包,包含多份文件
  2. 导出目标数据条数 > 最大可导出数量,可导出压缩包,包含多份文件

当然,针对导出目标数据条数 > 最大可导出数量的情况,也可以不支持导出,建议用户筛选过滤后分批导出

导出失败情况定义

建议所有目标数据均导出成功才视为成功,任意一条数据导出失败即算失败,导出时若支持部分失败,用户还需要在系统找出失败数据重新导出,如果导出失败数量较多,可能还得一条条查询,比较反人类的操作。

3. 导出文件设计

导出字段

  • 导出文件表头字段为目标导出字段,字段显示顺序同列表

注意:导出字段是否包含明细值,比如我之前在做导出产品报表时,对应【总收入】字段在系统会显示收入明细,导出时就需要考虑是否导出列表字段关联的明细字段,导出以什么形式展示
由于明细字段较多,这边考虑是分不同的sheet显示导出内容

  • 导出字段格式:

目标导出内容中包含以下字段时,需说明对应导出格式:

  1. 时间/日期
  2. 金额字段: 导出后是否显示货币单位;货币单位显示在单元格或表头标题($)
  3. 百分比值: 显示%还是小数格式,保留几位小数
  4. 富文本: 富文本是否支持导出,富文本中包含图片以什么形式导出;需注意:Excel的限制超过256个字段的数据无法导出
  5. 图片: 导出压缩图片或图片链接
  6. 附件: 附件内容可以按链接形式导出或 单独文件导出
  7. 系统一个字段下显示多个字段,下载时分开显示说明:例如SKU评分字段,包含评分数量、评分,导出后分开两个字段显示
  • 导出字段脱敏:

针对隐私性比较强的字段,导出时可做脱敏处理,例如[客户名称]导出时用[客户ID]替换

4. 导出交互设计

导出交互设计包含:
1)请求导出弹窗/页面: 根据实际场景需要设计,可能包含内容:导出字段、导出数据范围选择、请求导出按钮,例如:我当时在做导出时,需支持自定义导出报表的币种,即可自定义货币单位
2)文件导出进度: 展示当前文件的导出进度,异步导出时建议加上该步骤, 告知用户导出进度,给予用户掌控感,压缩主观等待时间
3)导出记录: 展示所有导出的文件记录
根据不同的业务场景,导出交互也存在差异,不做详细说明,以下仅针对部分导出元素适用于哪些场景进行简单说明,可在设计时进行参考。

请求导出弹窗

请求导出弹窗/页面,根据实际场景设计,可能包含内容:导出字段、导出数据范围选择、请求导出按钮

若导出文件普遍等待时间较长,可在弹窗内说明原因,告知用户等待原因,让等待看起来合理,这样

  • 示例 1:之前SaaS导出报表,需支持自定义导出报表的币种,如下:
    在这里插入图片描述
  • 示例 2:自定义导出字段
    在这里插入图片描述

导出进度

异步导出,申请导出后,由于导出结果无法实时返回,在设计交互时需注意在系统内需显示当前文件导出进度,方便让用户在导出完成后下载文件。

注意: 导出进度提示最好显示在系统角落的位置,例如:系统顶部、右上角、右下角等,让用户能时刻了解进度的同时,不影响用户在页面内的其他操作

  • 示例 1:参考火狐浏览器,在系统顶部显示下载icon,悬停或点击或查看当前文件导出进度,导出完成后默认打开对应文件
    在这里插入图片描述
  • 示例 2:申请导出后,在系统内显示导出悬浮框,显示当前文件导出进度,引导用户下一步操作,如下:
    在这里插入图片描述

导出记录

导出记录,一般包含字段:导出文件名称、导出模块、导出状态(进度)、操作人、操作时间;

  • 若是异步导出,还需要支持 [下载] 操作,即下载导出的文件
  • 若导出文件存在时间范围,导出记录列表可显示对应:时间范围

注意:

  • 1)异步导出,需注意限制下载的时间,正常导出的文件存储只保留72小时即可,超时的文件无法下载
  • 2)超时失效的文件,是否支持一键重新请求导出;若支持需注意重新生成一条导出记录,而不是在刷新当前导出记录
  • 示例:
    在这里插入图片描述
  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值