在上一篇文章中,我們分享了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 協定。