如何輕松搞定導出功能設計
在上一篇文章中,我們分享了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 協議。
棒棒噠,本來需要自己研究設計3小時的東西,有了這篇文章參考之后30分鐘搞定,剩下時間就可以摸魚了。感謝分享
文章很贊