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