惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
博客园_首页
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
V
V2EX
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
如何轻松搞定导出功能设计
王大鹿 · 2024-05-11 · via 人人都是产品经理

在上一篇文章中,我们分享了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 协议。