tft每日頭條

 > 生活

 > excel二次開發教程

excel二次開發教程

生活 更新时间:2025-02-12 05:06:53

上一篇文章給大家介紹了Excel導入的核心步驟,不同的步驟有着自己的作用與邏輯 ,本文又補充了一些産品經理在做好Excel導入功能時需要注意的細節,希望對你有所啟發。

excel二次開發教程(B端産品設計必看)1

前言

上一篇講Excel導入的時候,提到有4個核心的步驟,在設計導入功能的時候要特别注意,不同的步驟有不同的職責和不同的校驗邏輯,同時也補充了一些Excel導入的知識點。這一篇,來和大家分享一下,做好一個Excel導入功能,産品經理有哪些需要注意的細節之處。

這些細節之處雖然有些看似很碎,但是隻要花點時間整理好了之後,就可以形成可複用的“組件化産品方案”了。

一、Excel模闆的制作

Excel導入模闆的制作說簡單也簡單,說複雜也複雜。簡單是因為本質上就是把字段定義好,然後把對應的規則整理好,可以理解為一種特殊的“輸入表單”。複雜是因為字段比較多,字段之間的關系也多,再加上用戶填寫的約束性比較弱,各種細節糅合在一起之後就會感覺做一個好用的Excel模闆也不是那麼簡單的樣子。

Excel導入的模闆需要根據導入的業務而靈活變動,一般來說從簡單到複雜,有這麼幾種類型的模闆:

  1. 單Sheet,字段同級的模闆,也就是隻有一個Sheet表,一般字段也不是很多,而且字段關系是同一級的,沒有父子級關系;
  2. 單Sheet,字段有父子級的模闆,也就是隻有一個Sheet表,字段可能較多,關鍵是字段關系的父子級的,即主檔和明細同時導入;
  3. 多Sheet,而且多個Sheet之間有邏輯關系的模闆,這種Excel導入的模闆填寫也比較麻煩,涉及到的邏輯校驗也比較麻煩;

1. 單Sheet且字段同級的模闆

這種是最常見也是最簡單的Excel導入模闆,示意圖如下:

excel二次開發教程(B端産品設計必看)2

黃色背景的為必填項,灰色的為非必填的内容,如果有一些字段需要特殊介紹,則使用批注的方式進行說明。也有一些系統會預先填充一些參考案例,或者是在第一行做一些詳細的文案說明。

excel二次開發教程(B端産品設計必看)3

有贊的商品導入示意圖

excel二次開發教程(B端産品設計必看)4

第一行有詳細文案說明模闆

2. 單Sheet,字段有父子級關系的模闆

由于有一些字段是有父子級關系的,所以在制作模闆和解析模闆的時候就和第1種有一些細微的區别,是要特别注意處理的。

例如導入訂單,一個訂單可能會有多條商品信息,這就是存在一對多的關系。如果遇到這種場景,一般有兩種做法:

  1. 一種是将所有字段打平,平鋪展示;
  2. 一種是按子級的數據為最小粒度展示,父級的字段會有重複,有需要的時候可以用标識号來确定同一父級;

所有字段都打平展示,模闆看起來會稍微清爽簡潔一些,但是由于把子級的數據放在了最後面,為了方便用戶填寫以及程序解析模闆,就會控制子級的數量級。例如該模闆就是限制了最多10個子級,也就意味着一個訂單最多隻有10條商品,如果超過了這個量級用這個模闆導入就會失敗。

excel二次開發教程(B端産品設計必看)5

所有字段打平展示

按子級的數據為最小粒度展示,好處就是可以縱向的錄入很多個子級(超過10個),但是壞處也很明顯,父級的一些數據,例如訂單号,倉庫代碼,地址信息等都會重複填寫,除了不太美觀之外,還有可能會有不同行的數據填錯了有差異,不知道取哪個為準的困擾出現。

excel二次開發教程(B端産品設計必看)6

按子級為最小粒度展示

3. 多Sheet同時導入

有些時候,用一個Excel表無法同時導入數據,用兩個Excel表又感覺操作比較麻煩,那麼可以考慮使用同一個Excel表但是多Sheet的方式導入。例如之前在做尾程的物流報價的時候,經過業務分析發現一共有5種計費方式:

  1. 總價模式,隻需要導入“總價表”的數據即可;
  2. 單價模式,隻需要導入“單價或續重價表”的數據,同時計費模式選擇為“單價”即可;
  3. 續重價模式,隻需要導入“單價或續重價表”的數據,同時計費模式選擇為“續重價”即可;
  4. 總價 單價模式,則需要同時導入“總價表”和“單價或續重價表”的數據,同時将“單價或續重價表”的計費模式選擇“單價”即可;
  5. 總價 單價模式,則需要同時導入“總價表”和“單價或續重價表”的數據,同時将“單價或續重價表”的計費模式選擇“續重價”即可;

excel二次開發教程(B端産品設計必看)7

為了讓用戶更好地理解這個表格導入的邏輯,我還做了一個“說明”的Sheet。多Sheet表導入背後會涉及到比較多的邏輯,因為多個Sheet之間有邏輯關系,所以能不使用這種方式是最好,實在避免不了,那麼就要做好相關的邏輯說明和操作指引。

除了上述提到的3種模闆之外,我們還會經常遇到遇到實際要導入Sheet1,但是由于表格填寫的時候有很多字段需要有參考值,所以必須将這些參考值放在Sheet2或者Sheet3的場景,例如下面的一些案例:

從其他Sheet中選擇一些字段的可選值

excel二次開發教程(B端産品設計必看)8

從其他Sheet中選擇一些字段的可選值

我們在制作模闆的時候,可能隻需要制作Sheet1主表,然後用戶在下載模闆的時候,需要将一些預設的可選值動态的插入到模闆的其他Sheet中。例如導入訂單/出庫單這樣的場景下,需要選擇倉庫,選擇物流渠道等,這些信息是動态的,需要每次下載模闆的時候獲取這些信息然後插入到相應的Sheet種。而國家/地區簡碼和說明等内容,則可以在制作模闆的時候就提前把數據填充好。

二、展示導入失敗的信息

聊完了Excel模闆的制作之後,還有一個場景的需求也需要注意一下,那就是導入失敗的信息怎麼展示。我大概找了一些競品看了之後發現,大家普遍有這麼幾種玩法:

  1. 導入失敗的内容直接在頁面展示,告知第多行錯誤,某某某字段不能為空或者XXX校驗未通過;
  2. 導入失敗的内容不在頁面展示,而是讓用戶下載錯誤的信息,自己進行修改,然後重新導入;

從用戶體驗的角度來說,提示成功多少,失敗多少,然後支持用戶下載失敗的結果是更好的做法。

excel二次開發教程(B端産品設計必看)9

當用戶下載失敗結果之後,怎麼展示失敗的原因是有一些小細節在裡面的,主要有這麼幾個點:

  1. 錯誤原因是展示一個還是多個?
  2. 錯誤字段是否要标記背景色或者突出文字?
  3. 如果有一些行是正确的,有一些行是失敗的,但是這些行是屬于同一個單據怎麼展示?

1. 錯誤原因展示一個還是多個?

excel二次開發教程(B端産品設計必看)10

關于這一點,我建議建議一定要展示多個,把一次性能校驗出來的結果都展示出來,避免擠牙膏式的報錯。用戶在導入Excel過程中的報錯都要謹慎處理,因為修改模闆,然後導入,再下載錯誤模闆,打開查看錯誤,在修複後導入……這個鍊路太長了,很容易失去耐心直接發毛。

之前我在測試一個導入功能的時候,導入了10次都失敗了,每次反反複複修改模闆,當時的心情真的是想罵人。但是又轉念一想,這不是我自己做的嗎?罵自己豈不是尴尬,還是耐着性子趕緊優化了吧。

2. 錯誤字段是否要标記背景色或者突出文字?

excel二次開發教程(B端産品設計必看)11

錯誤詳情展示-摘自輕流 關于這個點,我感覺是見仁見智,能标記出來肯定是利于用戶去修改的,我會傾向于标記一下,注意不要用太濃烈的顔色,不然會很醜。而且用戶修改完了這個字段之後最好是可以去掉這個背景色,不然數據量一多就很容易形成幹擾了。

3. 同一個單成功的行需要展示嗎?

excel二次開發教程(B端産品設計必看)12

必要的時候正确的信息也展示 因為下載的是失敗記錄的模闆,雖然有一些行是正确的,但是由于整個單沒有成功,所以這些正确的行還是會一起展示,隻不過在展示的時候需要對正确的行做一個特殊說明。

例如,同一個訂單購買了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. 文件導入上傳機制規定

  • 同步導入,文件導入後需要等響應了結果之後才可以繼續其他操作;
  • 異步導入,文件導入後會自動加入異步任務中,此時可以去執行其他操作;
  • 數據重複–支持覆蓋(看情況而定);
  • 數據重複–上傳失敗(看情況而定);
  • 數據重複–跳過(看情況而定);

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 協議。

該文觀點僅代表作者本人,人人都是産品經理平台僅提供信息存儲空間服務。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved