欧美人与禽2O2O性论交,秋霞免费视频,国产美女视频免费观看网址,国产成人亚洲综合网色欲网

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

在B端產品中,導入是最常見的功能之一。當我們做項目時,需要涉及到大量的數據,應該如何處理數據?本文介紹了將Excel數據導入到數據庫中需要注意的點和方法,希望對你有所幫助。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

最近在從0到1做一個新的項目,涉及到大量數據的維護,有簡單的基礎字典數據的維護,也涉及到“嚴肅數據”的維護,這些數據有個要求:一個都不能錯。

我們是第一期版本,本來想直接寫SQL更新,但是運維不讓搞,也沒有足夠的時間去開發(fā)頁面功能,為了快速生產數據,這個時候最好的方式就是“批量導入excel”。把導入的功能搞上線后,坑我踩了不少,同時導入功能也是B端產品中最常見的功能。

咱們今天就說說導入excel~接下來我先不按照導入的流程說,因為導入整體的流程比較簡單。大流程就是將Excel數據導入到數據庫中。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

在細化一點,就是模板制作,用戶下載模板,填寫完數據后再上傳文件。程序開始數據校驗,有錯誤數據用戶再修改,直到導入成功進入到數據庫。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

我就不按照導入的流程說了,直接說我個人感覺比較重要的地方,這些弄清楚那導入就沒問題了。

我整理了以下4點,咱們一個個說。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

一、導入校驗

導入時為了保證數據的準確性,最重要的就是“校驗”了。

因為是導入的數據最終是到數據庫,如果你對數據庫有了解,校驗邏輯你肯定會清楚很多。

不懂也沒事,咱們先說校驗。

校驗一般分為以下內容:

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

我們一個一個的說下:

1、文件校驗

(1)導入文件格式

對于excel,常見的格式有xlsx、xls、csv;

推薦xlsx格式,它不僅是目前主流的excel格式,而且相同行 列數據時,xlsx格式文件體積較小。

(2)導入文件大小

對于導入文件體積大小的限制,對文件大小添加限制的主要原因是文件過大時,程序處理起來會很費勁,所以可以添加大小限制。

可以根據數據量大小設置,建議最大值在5M。

當然也可以對文件內的“行數”添加限制,比如說每次導入最多2000條等。

目的都是為了加個限制。

(3)導入文件名稱

校驗上傳文件的文件名,當上傳與要求的文件名稱不一致時則報錯。

當文件名稱沒有特殊作用時,不建議對名稱進行校驗。

2、模板校驗

模板里有表頭名稱、sheet頁名稱,用于讓程序知道需要更新數據庫里的哪個表,哪個字段。

表頭名稱是指導入模板內的列名,當導入到數據庫的時候,程序知道哪個列對應數據庫里的表字段,當與導入模板要求不同時則報錯。

由于一個excel里可以添加多個sheet頁,如果你的模板里涉及到多個sheet頁,這個時候就需要對sheet頁名稱進行校驗。

另外還有對表頭字段名稱順序的校驗,我們可以加上字段順序的校驗,當字段列順序和模板不一樣的時候,則提示模板不對。

當然也可以直接按照字段名稱去匹配,不管字段順序。

當模板校驗通過后,在進入到下一步的數據校驗。

3、文件內數據校驗

當模板校驗通過后,然后在對Excel內的數據進行校驗,這個時候可以對文件內的必填的單元格數據、不可重復的單元格數據進行校驗。

這個時候還是對Excel內的數據進行校驗,還沒有到數據庫。

當然有個極端情況,就是模板內數據為空,只有個表頭,這個時候不需要處理,直接提示:文件內數據為空,請補充數據后再上傳。

接下來就是對字段進行其他校驗,具體的校驗咱們在下邊一起說。

4、字段校驗

(1)字段是否必填

如果字段是必填值,導入的excel里單元格為空,所以數據就是錯誤的,則需要進行報錯提示。

(2)字段是否唯一

對于一些字段,我們要求是唯一的,但是會存在2種情況:

  1. 文件內的數據有重復值
  2. 文件內的數據和數據庫里已有的值存在重復

對于這2種情況,都是由于數據有誤引起的,我們可以制定規(guī)則:按照最新的唯一值進行更新數據,或者是直接提示報錯,

下邊會細聊。

(3)字段格式

如數字格式、日期格式、時間格式、字符串格式。如果這列字段和數據庫表字段的格式對不上,也導不進去。

還有就是數字的大小,比如只能輸入個位數,導入時填寫了100,則這個數據就有問題,就需要報錯。

還有小數點位數、手機號、身份證號、稅號等基礎格式的校驗。

這個校驗需要針對每個字段進行校驗邏輯說明。

(4)字段長度

比如說最大長度是250個字符,但是excel里的字段長度寫了500字符,那就導不進去了,得提示報錯了。

(5)固定值校驗

如果某個字段需要填寫的固定值。

比如說單元格內只能填寫是或者否,填寫其他內容時,則無法導入數據庫。

對于要填寫固定值的單元格,我們可以在excel模板里添加下拉框,讓用戶直接選擇,而不用再去輸入。

(6)關聯校驗

關聯校驗有2種情況:

1、當填寫某個字段后,另外一個字段則必須填寫。

舉個例子:當填寫年齡最小值或者最大值時,則必須填寫年齡單位;當填寫年齡單位時,則必須填寫最大值或者最小值。

2、字段跨sheet頁校驗

對于模板里有多個sheet頁時,且sheet頁之間存在數據關系時,這個時候需要說清楚sheet頁之間的校驗。

舉個例子:“說明書藥品基本信息”中的商品編碼與“說明書用法用量”中的“商品編碼”需要對應上,當這兩個sheet頁里的商品編碼對不上的時候,就是錯誤數據,這個時候就要報錯。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

5、其它校驗

整行數據重復校驗:如果一行數據相同,我們就可以認為是數據存在重復值,這個時候可以進行報錯提示。

多個字段聯合重復校驗:多個字段合并在一起聯合作為唯一值,則存在重復時則可以進行提示。

根據填寫的字段做更細的校驗:

比如填寫是數字,則需要考慮數字的大小,數字的小數點位數。

如果填寫的是手機號,則需要考慮手機號格式的校驗。

當以上校驗通過后,接下來程序就需要將數據導入到數據庫了。

我們回顧以上的校驗邏輯,可以發(fā)現,這些校驗和“表單錄入”功能需要考慮到的校驗基本相似。

二、導入報錯提示

在導入時,一定會存在填寫內容不對的時候,這個時候就需要進行提示出問題數據了。

首先我們先確定錯誤提示的時機,就是“什么時候提示”。

一般分為2種:

因為報錯的時機是跟著校驗走的,我們需要根據錯誤類型進行判斷:

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

1、當對文件校驗不通過時,需要立即提示

因為文件校驗不通過,壓根無法處理數據,這個時候直接報錯提示。如文件類型不對、文件大小過大、文件名稱不對等等。

對于文件類型的限制,我們可以在選擇文件的時候,限制選擇的類型,在選擇文件的彈窗內,僅展示支持的文件類型,過濾掉其它類型的文件。

對于文件體積大小的校驗,可以在選擇文件后,由前端進行校驗,直接進行提示。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

對于文件名稱的校驗,我建議不校驗,如果非要校驗,可以在上傳后由前端或者后端進行校驗,出現錯誤后直接報錯提示。

2、當導入模板不對時,則立即提示

模板不對沒有辦法進行下一步字段校驗,這個時候需要報錯。

如果模板錯誤,我們需要將全部錯誤的表頭一起報錯出來,而不是發(fā)現一個錯誤表頭后就立刻報錯。

報錯的方式,可以直接展示出錯誤的表頭名稱,并提示出正確的表頭名稱。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

3、字段校驗不通過,則統(tǒng)一報錯

當導入模板正確,這時系統(tǒng)會對填寫的每個字段數據進行校驗,這種時候出現的問題,我認為可以在最后進行統(tǒng)一提示。

對于字段校驗時的錯誤數據,有幾種方式我們可以參考:

方法1:直接文字提示

說清楚sheet頁名稱 第幾行 第幾列 錯誤信息 正確信息。讓用戶線下修改,重新導入。

對于錯誤的信息,需要制定個排序方式,有條理的展示出錯誤數據,可以按照sheet頁順序 行數順序 列順序依次展示。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

不過在提醒第幾行時,有個小細節(jié),這個第幾行要和excel文件內的行數對應,要提醒研發(fā)注意。

方法2:導出錯誤數據

功能上支持導出錯誤數據,在excel文件內加一列【錯誤信息】列,展示出每行的問題數據,讓用戶導出錯誤數據進行線下修改。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

這種比較適合導入字段內容較多,數據量較大的情況。

方法3:在線修改錯誤數據

展示出報錯數據,并提供功能讓用戶自己在線更改。這種方式比較適合excel內字段內容較少,校驗邏輯較少的情況。

三、數據處理

當導入數據后,程序會一邊跑數據,一邊校驗。這個時候還有幾個點需要注意。

什么樣的數據才能進數據庫?

有2種:

  1. 哪條數據校驗通過,哪條數據進數據庫某條數據通過校驗則直接導入進數據庫,對于錯誤的數據,則不進入數據庫。
  2. 全部數據校驗通過后,全部導入進數據庫意思就是excel里的全部數據都通過校驗后,將excel內的數據全部導入進數據庫;當存在任何一條數據是錯誤的,則整個excel內的數據都無法導入進數據庫。

重復數據的處理方式?

在導入時,當唯一值存在重復時,這個重復有2種情況:一個是在excel文件內有重復,一個是excel文件內唯一值與數據庫已有的數據存在重復值。對于重復值有以下處理方式:

  • 報錯,把重復值作為錯誤數據提示報錯,讓用戶線下處理。這種方式比較嚴謹,我倒是比較推薦這種方式。
  • 更新數據不進行報錯,直接按照唯一值更新數據。對于經常進行變更的數據我們可以采用這種方式。
  • 跳過數據,不進行處理當唯一值已存在時,則跳過數據,不更新數據。當已存在的唯一值無法進行更新,或者更新后影響其他數據時,則建議使用這種方式。當然,如果區(qū)分不了什么時候更新、什么時候跳過時,可以提供功能讓用戶選擇處理。

過濾不必要的數據:

(1)過濾空格

填寫在單元格里的數據當有空格時,如果沒有單獨要求,則可以讓程序過濾掉空格。

如果空格沒過濾,導入到數據庫后則會形成臟數據。

如果用戶填寫的數據就有空格時,這個時候可以考慮清空單元格數據內的前后空格。

(2)過濾全行空白數據

當excel中的數據整行數據全部為空時,可以將空白行以及之后的行數據都不做處理。

如果我們在excel里使用了下拉框等方式,雖然沒有填寫值,但是程序在處理的時候會認為里邊有值。

我們可以設置個規(guī)則:當一行數據全部為空時,則認為此行以及之后行都無數據。

四、導入模板制作

對于導入模板,我們需要說清楚模板怎么填寫,需要把上邊提到的字段校驗說清楚,同時結合excel的功能制作模板。

1、制定好模板

定義好需要填寫字段的表頭名稱,名稱要和功能上的名稱一致。

提供下載模板功能,讓用戶下載模板使用。

對于1對1的關系,這個就很簡單,每列對應數據庫表中的一個字段,定義好模板中的每個表頭列名。

當有1對多的關系時,我們可以設計2種方式。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

①一個單元格填寫多個值

在單元格內填寫多個值,通過一個固定的分隔符號,比如用中文逗號,中文頓號、空格等固定值,讓程序知道該怎么分隔。

②分成多行填寫

將1對多的關系,按照多行填寫。

我們可以根據實際填寫的場景設置,把規(guī)則說清楚即可。

2、制定好模板字段的填寫邏輯

說明每個字段的填寫要求,哪些字段是必填、哪些字段不能重復等等,就是要說清楚字段該怎么填才能導進去。

如果字段過多時,可以拉個excel表,單獨說明校驗邏輯提供給研發(fā)。

示例如下:

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

3、說清楚“如何填寫模板”

對于導入模板的填寫我們可以使用以下方式:

①新增一個sheet頁寫模板說明

②在模板前幾行填寫模板說明

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

③在單元格添加批注的方式填寫說明

④填寫示例數據

新增一行示例數據,讓用戶知道該怎么填寫。

以上的方式我們也可以結合在一起,同時提示用戶該怎么填。

4、結合excel里的功能設計模板

① 如果填寫的數據是固定值,我們可以使用下拉框,直接讓用戶下拉選擇。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

如果字典值過多的時候,可以新增一個sheet頁,通過設置下拉框取值范圍即可。

②在模板內的添加基礎校驗

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

使用excel里的“有效性”,添加基礎的校驗。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

五、其它注意點

1、每次導入文件的數量

在開始導入前,首先要看每次支持導入的文件數量。一般每次導入1個文件。當然也能一次導入多個文件,直接每次選擇多個文件即可。當同時導入多個文件時,需要注意每個文件直接是否有關系,每個文件的處理是否有處理順序。

2、同步還是異步處理

同步處理就是導入后,直接處理,頁面處于加載狀態(tài),后臺進行導入處理,此時用戶不能進行其它操作,只能當處理完成后,才能進行其他操作。對于數據量較小,處理時間在用戶可接受時間內,比如說10秒內,可以采用同步處理的方式。我和研發(fā)溝通后,同步處理起來比較方便,我們采用的都是同步處理方式。

異步處理,就是上傳文件后,在后臺進行處理,用戶可以進行其他操作。當后臺處理完成后,在提示用戶處理結果。對于數據量較大,處理時間較長時,可以采用異步處理的方式。

3、導入文件交互方式的選擇

導入文件的交互方式要看采用哪種數據處理方式,才能設計對應的頁面交互。

我就不一個個說了,給大家舉個例子:

最簡單的,每次導入1個文件 出現一個錯誤數據則無法導入 同步處理。

下載模板:列表里有個下載模板的入口

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

選擇文件:點擊導入,直接彈出文件選擇框,每次只能選擇1個文件,上傳文件就開始進行導入。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

導入后,程序同步處理,添加個加載狀態(tài),當有錯誤數據時,則報錯提示。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

導入成功后,加個“導入成功”的提示。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

其它的交互方式大家可以搜搜看,有很多。

4、添加日志記錄

由于我們對數據要求很嚴格,所以我們添加了日志記錄,用于數據追查。

5、保證功能的連續(xù)性

在我們系統(tǒng)中,數據導入后,需要將導入的數據提交給審核人員進行審核,所以我們在導入成功后,添加了“提交審核”的功能,用戶可以直接提交數據去審核。

為了保證流程的流暢,我們可以在導入完成后,提供接下來的功能操作入口。

總結

說了很多,導入excel是常見的基礎功能,但是涉及到的內容很多,是個細活,從模板制作到校驗邏輯,到報錯提示,直到數據導入成功。

能把導入excel搞清楚,那我們弄其它數據相關的需求也就so easy 了。

咱們再回頭看,導入excel其實就是導入到數據庫。

當你對數據庫有了解,你就會清晰很多,數據庫有字段格式、長度、是否為空,外鍵等要求,這些不就是excel中的校驗。

只有小功能沒有小需求,6000字詳解導入Excel(excel導入功能在哪)

所以還是推薦大家了解數據庫的知識來豐富自己~

專欄作家

王大鹿,公眾號:產品大鹿,人人都是產品經理專欄作家。關注醫(yī)療領域,擅長原型設計、需求分析和方案設計,分享能落地的工作技能~

本文原創(chuàng)發(fā)布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

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

相關新聞

聯系我們
聯系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部