B端產品設計必看,Excel批量導入的知識點講解(下篇)
上一篇文章給大家介紹了Excel導入的核心步驟,不同的步驟有著自己的作用與邏輯 ,本文又補充了一些產品經理在做好Excel導入功能時需要注意的細節,希望對你有所啟發。
前言
上一篇講Excel導入的時候,提到有4個核心的步驟,在設計導入功能的時候要特別注意,不同的步驟有不同的職責和不同的校驗邏輯,同時也補充了一些Excel導入的知識點。這一篇,來和大家分享一下,做好一個Excel導入功能,產品經理有哪些需要注意的細節之處。
這些細節之處雖然有些看似很碎,但是只要花點時間整理好了之后,就可以形成可復用的“組件化產品方案”了。
一、Excel模板的制作
Excel導入模板的制作說簡單也簡單,說復雜也復雜。簡單是因為本質上就是把字段定義好,然后把對應的規則整理好,可以理解為一種特殊的“輸入表單”。復雜是因為字段比較多,字段之間的關系也多,再加上用戶填寫的約束性比較弱,各種細節糅合在一起之后就會感覺做一個好用的Excel模板也不是那么簡單的樣子。
Excel導入的模板需要根據導入的業務而靈活變動,一般來說從簡單到復雜,有這么幾種類型的模板:
- 單Sheet,字段同級的模板,也就是只有一個Sheet表,一般字段也不是很多,而且字段關系是同一級的,沒有父子級關系;
- 單Sheet,字段有父子級的模板,也就是只有一個Sheet表,字段可能較多,關鍵是字段關系的父子級的,即主檔和明細同時導入;
- 多Sheet,而且多個Sheet之間有邏輯關系的模板,這種Excel導入的模板填寫也比較麻煩,涉及到的邏輯校驗也比較麻煩;
1. 單Sheet且字段同級的模板
這種是最常見也是最簡單的Excel導入模板,示意圖如下:
黃色背景的為必填項,灰色的為非必填的內容,如果有一些字段需要特殊介紹,則使用批注的方式進行說明。也有一些系統會預先填充一些參考案例,或者是在第一行做一些詳細的文案說明。
有贊的商品導入示意圖
第一行有詳細文案說明模板
2. 單Sheet,字段有父子級關系的模板
由于有一些字段是有父子級關系的,所以在制作模板和解析模板的時候就和第1種有一些細微的區別,是要特別注意處理的。
例如導入訂單,一個訂單可能會有多條商品信息,這就是存在一對多的關系。如果遇到這種場景,一般有兩種做法:
- 一種是將所有字段打平,平鋪展示;
- 一種是按子級的數據為最小粒度展示,父級的字段會有重復,有需要的時候可以用標識號來確定同一父級;
所有字段都打平展示,模板看起來會稍微清爽簡潔一些,但是由于把子級的數據放在了最后面,為了方便用戶填寫以及程序解析模板,就會控制子級的數量級。例如該模板就是限制了最多10個子級,也就意味著一個訂單最多只有10條商品,如果超過了這個量級用這個模板導入就會失敗。
所有字段打平展示
按子級的數據為最小粒度展示,好處就是可以縱向的錄入很多個子級(超過10個),但是壞處也很明顯,父級的一些數據,例如訂單號,倉庫代碼,地址信息等都會重復填寫,除了不太美觀之外,還有可能會有不同行的數據填錯了有差異,不知道取哪個為準的困擾出現。
按子級為最小粒度展示
3. 多Sheet同時導入
有些時候,用一個Excel表無法同時導入數據,用兩個Excel表又感覺操作比較麻煩,那么可以考慮使用同一個Excel表但是多Sheet的方式導入。例如之前在做尾程的物流報價的時候,經過業務分析發現一共有5種計費方式:
- 總價模式,只需要導入“總價表”的數據即可;
- 單價模式,只需要導入“單價或續重價表”的數據,同時計費模式選擇為“單價”即可;
- 續重價模式,只需要導入“單價或續重價表”的數據,同時計費模式選擇為“續重價”即可;
- 總價+單價模式,則需要同時導入“總價表”和“單價或續重價表”的數據,同時將“單價或續重價表”的計費模式選擇“單價”即可;
- 總價+單價模式,則需要同時導入“總價表”和“單價或續重價表”的數據,同時將“單價或續重價表”的計費模式選擇“續重價”即可;
為了讓用戶更好地理解這個表格導入的邏輯,我還做了一個“說明”的Sheet。多Sheet表導入背后會涉及到比較多的邏輯,因為多個Sheet之間有邏輯關系,所以能不使用這種方式是最好,實在避免不了,那么就要做好相關的邏輯說明和操作指引。
除了上述提到的3種模板之外,我們還會經常遇到遇到實際要導入Sheet1,但是由于表格填寫的時候有很多字段需要有參考值,所以必須將這些參考值放在Sheet2或者Sheet3的場景,例如下面的一些案例:
從其他Sheet中選擇一些字段的可選值
從其他Sheet中選擇一些字段的可選值
我們在制作模板的時候,可能只需要制作Sheet1主表,然后用戶在下載模板的時候,需要將一些預設的可選值動態的插入到模板的其他Sheet中。例如導入訂單/出庫單這樣的場景下,需要選擇倉庫,選擇物流渠道等,這些信息是動態的,需要每次下載模板的時候獲取這些信息然后插入到相應的Sheet種。而國家/地區簡碼和說明等內容,則可以在制作模板的時候就提前把數據填充好。
二、展示導入失敗的信息
聊完了Excel模板的制作之后,還有一個場景的需求也需要注意一下,那就是導入失敗的信息怎么展示。我大概找了一些競品看了之后發現,大家普遍有這么幾種玩法:
- 導入失敗的內容直接在頁面展示,告知第多行錯誤,某某某字段不能為空或者XXX校驗未通過;
- 導入失敗的內容不在頁面展示,而是讓用戶下載錯誤的信息,自己進行修改,然后重新導入;
從用戶體驗的角度來說,提示成功多少,失敗多少,然后支持用戶下載失敗的結果是更好的做法。
當用戶下載失敗結果之后,怎么展示失敗的原因是有一些小細節在里面的,主要有這么幾個點:
- 錯誤原因是展示一個還是多個?
- 錯誤字段是否要標記背景色或者突出文字?
- 如果有一些行是正確的,有一些行是失敗的,但是這些行是屬于同一個單據怎么展示?
1. 錯誤原因展示一個還是多個?
關于這一點,我建議建議一定要展示多個,把一次性能校驗出來的結果都展示出來,避免擠牙膏式的報錯。用戶在導入Excel過程中的報錯都要謹慎處理,因為修改模板,然后導入,再下載錯誤模板,打開查看錯誤,在修復后導入……這個鏈路太長了,很容易失去耐心直接發毛。
之前我在測試一個導入功能的時候,導入了10次都失敗了,每次反反復復修改模板,當時的心情真的是想罵人。但是又轉念一想,這不是我自己做的嗎?罵自己豈不是尷尬,還是耐著性子趕緊優化了吧。
2. 錯誤字段是否要標記背景色或者突出文字?
錯誤詳情展示-摘自輕流
關于這個點,我感覺是見仁見智,能標記出來肯定是利于用戶去修改的,我會傾向于標記一下,注意不要用太濃烈的顏色,不然會很丑。而且用戶修改完了這個字段之后最好是可以去掉這個背景色,不然數據量一多就很容易形成干擾了。
3. 同一個單成功的行需要展示嗎?
必要的時候正確的信息也展示
因為下載的是失敗記錄的模板,雖然有一些行是正確的,但是由于整個單沒有成功,所以這些正確的行還是會一起展示,只不過在展示的時候需要對正確的行做一個特殊說明。
例如,同一個訂單購買了3個IP,其中的1個IP是正確的,但是另外2個IP是有問題的,所以導致這個單不能導入發貨完成,所以下載失敗記錄的時候也會把正確的信息帶出來,提示用戶這個訂單實際是需要導入3個IP,只有2個是有問題的、需要處理的。
三、Excel導入的一些規范
一個稍微復雜點的系統一般都是由多個產品經理來分別負責不同的模塊,也就是同樣是導入Excel的功能,不同的人來做會有很多不一樣的風格特色,而且這一塊的細節往往容易被人忽視掉。為了降低用戶使用系統時的割裂感,最好是可以為產品團隊制定一份關于Excel導入的規范,具體內容可以自由發揮,因地制宜。下面,我分享一下,我之前為團隊制定的一份“文件導入規范”,給大家參考一下。
1. 文件命名
默認導入的模板文件的名稱都用英文,而不是中英文。英文單詞之間用大駝峰的方式連接,英文與數字或者其他隔斷性詞(Import)連接時,使用下劃線“_”
1.1 導入模板文件命名
英文.xlsx
示例:Zone_Import.xlsx
說明:用英文做模板名是考慮到用戶可能是海外的員工,大概率會看不懂中文。如果想要做的細節一點的話,可以根據系統的語言來切換下載不同的導入模板,但是這樣維護的成本比較高,所以我就選擇全部用英文了。
1.2 導入失敗文件命名
Error_原文件名_年月日時分秒.xlsx
示例:Error_Zone_Import_211119144400.xlsx
說明:導入失敗的文件名,會在原模板文件名的基礎上,增加前綴和后綴。前綴是“Error”,后綴是“時間”。
1.3 打印/下載PDF文件命名
英文_年月日時分秒.pdf 示例:PickingList_211112164123.pdf
1.4 導出Excel文件命名
英文_年月日時分秒.pdf 示例:PackingList_211112164123.xlsx
2. 文件格式相關
- 導入Excel的時候,要對文件格式校驗,若不符合規定的文件格式,導入即報錯;
- 最好是在前端層做控制,在選擇本地文件的時候,就限制只能選擇.xlsx格式的文件,降低用戶找文件的成本;
- Excel導入文件格式規定為.xlsx,打印/下載文件格式規定為pdf,xlsx等;
3. 文件導入數量規定
- Excel導入文件,一次僅支持導入一個文件,不能多選;
- 上傳圖片可一次性支持多個,上限暫時未規定,看具體情況自己靈活設定;
- Excel導入文件的體積大小默認是為5M以內,如果有大批量的數據導入則可視情況而定做調整;
- 圖片上傳的體積大小默認也是5M以內,一般情況下上傳后都需要進行壓縮,便于后續的讀取展示;
- Excel導入的行數默認是不超過1000行,超過1000行的部分不做處理;如果有大批量數據導入可以視請客認定做調整;
4. 文件導入上傳機制規定
- 同步導入,文件導入后需要等響應了結果之后才可以繼續其他操作;
- 異步導入,文件導入后會自動加入異步任務中,此時可以去執行其他操作;
- 數據重復–支持覆蓋(看情況而定);
- 數據重復–上傳失?。辞闆r而定);
- 數據重復–跳過(看情況而定);
5. Excel模板的字段元素
- 必填、選填規定:黃色文本框(#FFF836)為必填,灰色文本框(#BFBFBF)為選填;
- 單元格樣式規定:全選所有表格,設定單元格樣式為左對齊,微軟雅黑12號,文本格式;
- 表頭規定:字段排列位置固定不允許更換,采用按坐標匹配的方式來確定字段;
- 表頭字段:采用英文+中文的方式展示,默認情況下要盡量給足夠的列寬,便于用戶查看并填寫;
- 批注:目前統一為中文批注,如有需要注明英文的,也可以靈活使用。批注字體也用微軟雅黑,字體建議用10,便于展示更多信息;
6. 錯誤原因的展示
- 下載導入失敗的Excel文件,錯誤失敗原因在第一列;
- 錯誤列表頭文字為(Error/錯誤原因),背景色為紅色(Red);
- 錯誤列一次性給出能判斷的所有錯誤信息,多條錯誤信息之間用英文逗號”,”分隔;
7. 模板Sheet定義
- 如果只有一個Sheet,則不做名稱修改
- 如果有多個Sheet,第一個Sheet可以用“XX信息”名,例如“商品信息”,“訂單信息”;后續的Sheet則按時間的內容而確定名稱,例如“國家/地區二字碼”,“渠道信息列表”
總結
Excel導入的門道如果要拆碎來講的話會有很多內容,很多細節,通過這兩篇文章的輸出,我發現自己對Excel導入的大多數場景和玩法都有相關的沉淀和總結了,受益頗深。
這些沉淀的知識就是我在上一篇文章中提到的“組件化產品方案”,我將自己遇到過好的導入案例和資料沉淀在知識庫中,后續要做類似的功能的時候,直接拿來即用就好了。
希望這兩篇文章除了能幫助大家更好地掌握Excel導入中的一些細節之外,還能通過這個案例更加深刻地理解“組件化產品方案”的思維。掌握這個思維方法,可以真正有效地提升你的工作效率,突破自己的能力瓶頸,同時也能很好地賦能團隊,創造更大的價值。
專欄作家
我叫維他命(Vitamin),微信公眾號:PM維他命,人人都是產品經理專欄作家。前PHPer,做過在線教育類產品,也做過5年多的跨境供應鏈方向的產品,現任某跨境電商ERP的產品負責人。主要專注于WMS/OMS/TMS/BMS/ERP等領域,分享跨境和供應鏈相關的產品知識。
本文原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于 CC0 協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
請問您自己有整理的組件化產品案例嗎?可以分享下不?
很好
很好的總結文章
寫得真好