只有小功能沒(méi)有小需求,6000字詳解導(dǎo)入Excel
在B端產(chǎn)品中,導(dǎo)入是最常見(jiàn)的功能之一。當(dāng)我們做項(xiàng)目時(shí),需要涉及到大量的數(shù)據(jù),應(yīng)該如何處理數(shù)據(jù)?本文介紹了將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中需要注意的點(diǎn)和方法,希望對(duì)你有所幫助。
最近在從0到1做一個(gè)新的項(xiàng)目,涉及到大量數(shù)據(jù)的維護(hù),有簡(jiǎn)單的基礎(chǔ)字典數(shù)據(jù)的維護(hù),也涉及到“嚴(yán)肅數(shù)據(jù)”的維護(hù),這些數(shù)據(jù)有個(gè)要求:一個(gè)都不能錯(cuò)。
我們是第一期版本,本來(lái)想直接寫(xiě)SQL更新,但是運(yùn)維不讓搞,也沒(méi)有足夠的時(shí)間去開(kāi)發(fā)頁(yè)面功能,為了快速生產(chǎn)數(shù)據(jù),這個(gè)時(shí)候最好的方式就是“批量導(dǎo)入excel”。把導(dǎo)入的功能搞上線后,坑我踩了不少,同時(shí)導(dǎo)入功能也是B端產(chǎn)品中最常見(jiàn)的功能。
咱們今天就說(shuō)說(shuō)導(dǎo)入excel~接下來(lái)我先不按照導(dǎo)入的流程說(shuō),因?yàn)閷?dǎo)入整體的流程比較簡(jiǎn)單。大流程就是將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中。
在細(xì)化一點(diǎn),就是模板制作,用戶下載模板,填寫(xiě)完數(shù)據(jù)后再上傳文件。程序開(kāi)始數(shù)據(jù)校驗(yàn),有錯(cuò)誤數(shù)據(jù)用戶再修改,直到導(dǎo)入成功進(jìn)入到數(shù)據(jù)庫(kù)。
我就不按照導(dǎo)入的流程說(shuō)了,直接說(shuō)我個(gè)人感覺(jué)比較重要的地方,這些弄清楚那導(dǎo)入就沒(méi)問(wèn)題了。
我整理了以下4點(diǎn),咱們一個(gè)個(gè)說(shuō)。
一、導(dǎo)入校驗(yàn)
導(dǎo)入時(shí)為了保證數(shù)據(jù)的準(zhǔn)確性,最重要的就是“校驗(yàn)”了。
因?yàn)槭菍?dǎo)入的數(shù)據(jù)最終是到數(shù)據(jù)庫(kù),如果你對(duì)數(shù)據(jù)庫(kù)有了解,校驗(yàn)邏輯你肯定會(huì)清楚很多。
不懂也沒(méi)事,咱們先說(shuō)校驗(yàn)。
校驗(yàn)一般分為以下內(nèi)容:
我們一個(gè)一個(gè)的說(shuō)下:
1、文件校驗(yàn)
(1)導(dǎo)入文件格式
對(duì)于excel,常見(jiàn)的格式有xlsx、xls、csv;
推薦xlsx格式,它不僅是目前主流的excel格式,而且相同行+列數(shù)據(jù)時(shí),xlsx格式文件體積較小。
(2)導(dǎo)入文件大小
對(duì)于導(dǎo)入文件體積大小的限制,對(duì)文件大小添加限制的主要原因是文件過(guò)大時(shí),程序處理起來(lái)會(huì)很費(fèi)勁,所以可以添加大小限制。
可以根據(jù)數(shù)據(jù)量大小設(shè)置,建議最大值在5M。
當(dāng)然也可以對(duì)文件內(nèi)的“行數(shù)”添加限制,比如說(shuō)每次導(dǎo)入最多2000條等。
目的都是為了加個(gè)限制。
(3)導(dǎo)入文件名稱
校驗(yàn)上傳文件的文件名,當(dāng)上傳與要求的文件名稱不一致時(shí)則報(bào)錯(cuò)。
當(dāng)文件名稱沒(méi)有特殊作用時(shí),不建議對(duì)名稱進(jìn)行校驗(yàn)。
2、模板校驗(yàn)
模板里有表頭名稱、sheet頁(yè)名稱,用于讓程序知道需要更新數(shù)據(jù)庫(kù)里的哪個(gè)表,哪個(gè)字段。
表頭名稱是指導(dǎo)入模板內(nèi)的列名,當(dāng)導(dǎo)入到數(shù)據(jù)庫(kù)的時(shí)候,程序知道哪個(gè)列對(duì)應(yīng)數(shù)據(jù)庫(kù)里的表字段,當(dāng)與導(dǎo)入模板要求不同時(shí)則報(bào)錯(cuò)。
由于一個(gè)excel里可以添加多個(gè)sheet頁(yè),如果你的模板里涉及到多個(gè)sheet頁(yè),這個(gè)時(shí)候就需要對(duì)sheet頁(yè)名稱進(jìn)行校驗(yàn)。
另外還有對(duì)表頭字段名稱順序的校驗(yàn),我們可以加上字段順序的校驗(yàn),當(dāng)字段列順序和模板不一樣的時(shí)候,則提示模板不對(duì)。
當(dāng)然也可以直接按照字段名稱去匹配,不管字段順序。
當(dāng)模板校驗(yàn)通過(guò)后,在進(jìn)入到下一步的數(shù)據(jù)校驗(yàn)。
3、文件內(nèi)數(shù)據(jù)校驗(yàn)
當(dāng)模板校驗(yàn)通過(guò)后,然后在對(duì)Excel內(nèi)的數(shù)據(jù)進(jìn)行校驗(yàn),這個(gè)時(shí)候可以對(duì)文件內(nèi)的必填的單元格數(shù)據(jù)、不可重復(fù)的單元格數(shù)據(jù)進(jìn)行校驗(yàn)。
這個(gè)時(shí)候還是對(duì)Excel內(nèi)的數(shù)據(jù)進(jìn)行校驗(yàn),還沒(méi)有到數(shù)據(jù)庫(kù)。
當(dāng)然有個(gè)極端情況,就是模板內(nèi)數(shù)據(jù)為空,只有個(gè)表頭,這個(gè)時(shí)候不需要處理,直接提示:文件內(nèi)數(shù)據(jù)為空,請(qǐng)補(bǔ)充數(shù)據(jù)后再上傳。
接下來(lái)就是對(duì)字段進(jìn)行其他校驗(yàn),具體的校驗(yàn)咱們?cè)谙逻呉黄鹫f(shuō)。
4、字段校驗(yàn)
(1)字段是否必填
如果字段是必填值,導(dǎo)入的excel里單元格為空,所以數(shù)據(jù)就是錯(cuò)誤的,則需要進(jìn)行報(bào)錯(cuò)提示。
(2)字段是否唯一
對(duì)于一些字段,我們要求是唯一的,但是會(huì)存在2種情況:
- 文件內(nèi)的數(shù)據(jù)有重復(fù)值
- 文件內(nèi)的數(shù)據(jù)和數(shù)據(jù)庫(kù)里已有的值存在重復(fù)
對(duì)于這2種情況,都是由于數(shù)據(jù)有誤引起的,我們可以制定規(guī)則:按照最新的唯一值進(jìn)行更新數(shù)據(jù),或者是直接提示報(bào)錯(cuò),
下邊會(huì)細(xì)聊。
(3)字段格式
如數(shù)字格式、日期格式、時(shí)間格式、字符串格式。如果這列字段和數(shù)據(jù)庫(kù)表字段的格式對(duì)不上,也導(dǎo)不進(jìn)去。
還有就是數(shù)字的大小,比如只能輸入個(gè)位數(shù),導(dǎo)入時(shí)填寫(xiě)了100,則這個(gè)數(shù)據(jù)就有問(wèn)題,就需要報(bào)錯(cuò)。
還有小數(shù)點(diǎn)位數(shù)、手機(jī)號(hào)、身份證號(hào)、稅號(hào)等基礎(chǔ)格式的校驗(yàn)。
這個(gè)校驗(yàn)需要針對(duì)每個(gè)字段進(jìn)行校驗(yàn)邏輯說(shuō)明。
(4)字段長(zhǎng)度
比如說(shuō)最大長(zhǎng)度是250個(gè)字符,但是excel里的字段長(zhǎng)度寫(xiě)了500字符,那就導(dǎo)不進(jìn)去了,得提示報(bào)錯(cuò)了。
(5)固定值校驗(yàn)
如果某個(gè)字段需要填寫(xiě)的固定值。
比如說(shuō)單元格內(nèi)只能填寫(xiě)是或者否,填寫(xiě)其他內(nèi)容時(shí),則無(wú)法導(dǎo)入數(shù)據(jù)庫(kù)。
對(duì)于要填寫(xiě)固定值的單元格,我們可以在excel模板里添加下拉框,讓用戶直接選擇,而不用再去輸入。
(6)關(guān)聯(lián)校驗(yàn)
關(guān)聯(lián)校驗(yàn)有2種情況:
1、當(dāng)填寫(xiě)某個(gè)字段后,另外一個(gè)字段則必須填寫(xiě)。
舉個(gè)例子:當(dāng)填寫(xiě)年齡最小值或者最大值時(shí),則必須填寫(xiě)年齡單位;當(dāng)填寫(xiě)年齡單位時(shí),則必須填寫(xiě)最大值或者最小值。
2、字段跨sheet頁(yè)校驗(yàn)
對(duì)于模板里有多個(gè)sheet頁(yè)時(shí),且sheet頁(yè)之間存在數(shù)據(jù)關(guān)系時(shí),這個(gè)時(shí)候需要說(shuō)清楚sheet頁(yè)之間的校驗(yàn)。
舉個(gè)例子:“說(shuō)明書(shū)藥品基本信息”中的商品編碼與“說(shuō)明書(shū)用法用量”中的“商品編碼”需要對(duì)應(yīng)上,當(dāng)這兩個(gè)sheet頁(yè)里的商品編碼對(duì)不上的時(shí)候,就是錯(cuò)誤數(shù)據(jù),這個(gè)時(shí)候就要報(bào)錯(cuò)。
5、其它校驗(yàn)
整行數(shù)據(jù)重復(fù)校驗(yàn):如果一行數(shù)據(jù)相同,我們就可以認(rèn)為是數(shù)據(jù)存在重復(fù)值,這個(gè)時(shí)候可以進(jìn)行報(bào)錯(cuò)提示。
多個(gè)字段聯(lián)合重復(fù)校驗(yàn):多個(gè)字段合并在一起聯(lián)合作為唯一值,則存在重復(fù)時(shí)則可以進(jìn)行提示。
根據(jù)填寫(xiě)的字段做更細(xì)的校驗(yàn):
比如填寫(xiě)是數(shù)字,則需要考慮數(shù)字的大小,數(shù)字的小數(shù)點(diǎn)位數(shù)。
如果填寫(xiě)的是手機(jī)號(hào),則需要考慮手機(jī)號(hào)格式的校驗(yàn)。
當(dāng)以上校驗(yàn)通過(guò)后,接下來(lái)程序就需要將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)了。
我們回顧以上的校驗(yàn)邏輯,可以發(fā)現(xiàn),這些校驗(yàn)和“表單錄入”功能需要考慮到的校驗(yàn)基本相似。
二、導(dǎo)入報(bào)錯(cuò)提示
在導(dǎo)入時(shí),一定會(huì)存在填寫(xiě)內(nèi)容不對(duì)的時(shí)候,這個(gè)時(shí)候就需要進(jìn)行提示出問(wèn)題數(shù)據(jù)了。
首先我們先確定錯(cuò)誤提示的時(shí)機(jī),就是“什么時(shí)候提示”。
一般分為2種:
- 發(fā)現(xiàn)錯(cuò)誤,立即報(bào)錯(cuò)
- 發(fā)現(xiàn)錯(cuò)誤,記錄錯(cuò)誤,最后統(tǒng)一報(bào)錯(cuò)
因?yàn)閳?bào)錯(cuò)的時(shí)機(jī)是跟著校驗(yàn)走的,我們需要根據(jù)錯(cuò)誤類型進(jìn)行判斷:
1、當(dāng)對(duì)文件校驗(yàn)不通過(guò)時(shí),需要立即提示
因?yàn)槲募r?yàn)不通過(guò),壓根無(wú)法處理數(shù)據(jù),這個(gè)時(shí)候直接報(bào)錯(cuò)提示。如文件類型不對(duì)、文件大小過(guò)大、文件名稱不對(duì)等等。
對(duì)于文件類型的限制,我們可以在選擇文件的時(shí)候,限制選擇的類型,在選擇文件的彈窗內(nèi),僅展示支持的文件類型,過(guò)濾掉其它類型的文件。
對(duì)于文件體積大小的校驗(yàn),可以在選擇文件后,由前端進(jìn)行校驗(yàn),直接進(jìn)行提示。
對(duì)于文件名稱的校驗(yàn),我建議不校驗(yàn),如果非要校驗(yàn),可以在上傳后由前端或者后端進(jìn)行校驗(yàn),出現(xiàn)錯(cuò)誤后直接報(bào)錯(cuò)提示。
2、當(dāng)導(dǎo)入模板不對(duì)時(shí),則立即提示
模板不對(duì)沒(méi)有辦法進(jìn)行下一步字段校驗(yàn),這個(gè)時(shí)候需要報(bào)錯(cuò)。
如果模板錯(cuò)誤,我們需要將全部錯(cuò)誤的表頭一起報(bào)錯(cuò)出來(lái),而不是發(fā)現(xiàn)一個(gè)錯(cuò)誤表頭后就立刻報(bào)錯(cuò)。
報(bào)錯(cuò)的方式,可以直接展示出錯(cuò)誤的表頭名稱,并提示出正確的表頭名稱。
3、字段校驗(yàn)不通過(guò),則統(tǒng)一報(bào)錯(cuò)
當(dāng)導(dǎo)入模板正確,這時(shí)系統(tǒng)會(huì)對(duì)填寫(xiě)的每個(gè)字段數(shù)據(jù)進(jìn)行校驗(yàn),這種時(shí)候出現(xiàn)的問(wèn)題,我認(rèn)為可以在最后進(jìn)行統(tǒng)一提示。
對(duì)于字段校驗(yàn)時(shí)的錯(cuò)誤數(shù)據(jù),有幾種方式我們可以參考:
方法1:直接文字提示
說(shuō)清楚sheet頁(yè)名稱+第幾行+第幾列+錯(cuò)誤信息+正確信息。讓用戶線下修改,重新導(dǎo)入。
對(duì)于錯(cuò)誤的信息,需要制定個(gè)排序方式,有條理的展示出錯(cuò)誤數(shù)據(jù),可以按照sheet頁(yè)順序+行數(shù)順序+列順序依次展示。
不過(guò)在提醒第幾行時(shí),有個(gè)小細(xì)節(jié),這個(gè)第幾行要和excel文件內(nèi)的行數(shù)對(duì)應(yīng),要提醒研發(fā)注意。
方法2:導(dǎo)出錯(cuò)誤數(shù)據(jù)
功能上支持導(dǎo)出錯(cuò)誤數(shù)據(jù),在excel文件內(nèi)加一列【錯(cuò)誤信息】列,展示出每行的問(wèn)題數(shù)據(jù),讓用戶導(dǎo)出錯(cuò)誤數(shù)據(jù)進(jìn)行線下修改。
這種比較適合導(dǎo)入字段內(nèi)容較多,數(shù)據(jù)量較大的情況。
方法3:在線修改錯(cuò)誤數(shù)據(jù)
展示出報(bào)錯(cuò)數(shù)據(jù),并提供功能讓用戶自己在線更改。這種方式比較適合excel內(nèi)字段內(nèi)容較少,校驗(yàn)邏輯較少的情況。
三、數(shù)據(jù)處理
當(dāng)導(dǎo)入數(shù)據(jù)后,程序會(huì)一邊跑數(shù)據(jù),一邊校驗(yàn)。這個(gè)時(shí)候還有幾個(gè)點(diǎn)需要注意。
什么樣的數(shù)據(jù)才能進(jìn)數(shù)據(jù)庫(kù)?
有2種:
- 哪條數(shù)據(jù)校驗(yàn)通過(guò),哪條數(shù)據(jù)進(jìn)數(shù)據(jù)庫(kù)某條數(shù)據(jù)通過(guò)校驗(yàn)則直接導(dǎo)入進(jìn)數(shù)據(jù)庫(kù),對(duì)于錯(cuò)誤的數(shù)據(jù),則不進(jìn)入數(shù)據(jù)庫(kù)。
- 全部數(shù)據(jù)校驗(yàn)通過(guò)后,全部導(dǎo)入進(jìn)數(shù)據(jù)庫(kù)意思就是excel里的全部數(shù)據(jù)都通過(guò)校驗(yàn)后,將excel內(nèi)的數(shù)據(jù)全部導(dǎo)入進(jìn)數(shù)據(jù)庫(kù);當(dāng)存在任何一條數(shù)據(jù)是錯(cuò)誤的,則整個(gè)excel內(nèi)的數(shù)據(jù)都無(wú)法導(dǎo)入進(jìn)數(shù)據(jù)庫(kù)。
重復(fù)數(shù)據(jù)的處理方式?
在導(dǎo)入時(shí),當(dāng)唯一值存在重復(fù)時(shí),這個(gè)重復(fù)有2種情況:一個(gè)是在excel文件內(nèi)有重復(fù),一個(gè)是excel文件內(nèi)唯一值與數(shù)據(jù)庫(kù)已有的數(shù)據(jù)存在重復(fù)值。對(duì)于重復(fù)值有以下處理方式:
- 報(bào)錯(cuò),把重復(fù)值作為錯(cuò)誤數(shù)據(jù)提示報(bào)錯(cuò),讓用戶線下處理。這種方式比較嚴(yán)謹(jǐn),我倒是比較推薦這種方式。
- 更新數(shù)據(jù)不進(jìn)行報(bào)錯(cuò),直接按照唯一值更新數(shù)據(jù)。對(duì)于經(jīng)常進(jìn)行變更的數(shù)據(jù)我們可以采用這種方式。
- 跳過(guò)數(shù)據(jù),不進(jìn)行處理當(dāng)唯一值已存在時(shí),則跳過(guò)數(shù)據(jù),不更新數(shù)據(jù)。當(dāng)已存在的唯一值無(wú)法進(jìn)行更新,或者更新后影響其他數(shù)據(jù)時(shí),則建議使用這種方式。當(dāng)然,如果區(qū)分不了什么時(shí)候更新、什么時(shí)候跳過(guò)時(shí),可以提供功能讓用戶選擇處理。
過(guò)濾不必要的數(shù)據(jù):
(1)過(guò)濾空格
填寫(xiě)在單元格里的數(shù)據(jù)當(dāng)有空格時(shí),如果沒(méi)有單獨(dú)要求,則可以讓程序過(guò)濾掉空格。
如果空格沒(méi)過(guò)濾,導(dǎo)入到數(shù)據(jù)庫(kù)后則會(huì)形成臟數(shù)據(jù)。
如果用戶填寫(xiě)的數(shù)據(jù)就有空格時(shí),這個(gè)時(shí)候可以考慮清空單元格數(shù)據(jù)內(nèi)的前后空格。
(2)過(guò)濾全行空白數(shù)據(jù)
當(dāng)excel中的數(shù)據(jù)整行數(shù)據(jù)全部為空時(shí),可以將空白行以及之后的行數(shù)據(jù)都不做處理。
如果我們?cè)趀xcel里使用了下拉框等方式,雖然沒(méi)有填寫(xiě)值,但是程序在處理的時(shí)候會(huì)認(rèn)為里邊有值。
我們可以設(shè)置個(gè)規(guī)則:當(dāng)一行數(shù)據(jù)全部為空時(shí),則認(rèn)為此行以及之后行都無(wú)數(shù)據(jù)。
四、導(dǎo)入模板制作
對(duì)于導(dǎo)入模板,我們需要說(shuō)清楚模板怎么填寫(xiě),需要把上邊提到的字段校驗(yàn)說(shuō)清楚,同時(shí)結(jié)合excel的功能制作模板。
1、制定好模板
定義好需要填寫(xiě)字段的表頭名稱,名稱要和功能上的名稱一致。
提供下載模板功能,讓用戶下載模板使用。
對(duì)于1對(duì)1的關(guān)系,這個(gè)就很簡(jiǎn)單,每列對(duì)應(yīng)數(shù)據(jù)庫(kù)表中的一個(gè)字段,定義好模板中的每個(gè)表頭列名。
當(dāng)有1對(duì)多的關(guān)系時(shí),我們可以設(shè)計(jì)2種方式。
①一個(gè)單元格填寫(xiě)多個(gè)值
在單元格內(nèi)填寫(xiě)多個(gè)值,通過(guò)一個(gè)固定的分隔符號(hào),比如用中文逗號(hào),中文頓號(hào)、空格等固定值,讓程序知道該怎么分隔。
②分成多行填寫(xiě)
將1對(duì)多的關(guān)系,按照多行填寫(xiě)。
我們可以根據(jù)實(shí)際填寫(xiě)的場(chǎng)景設(shè)置,把規(guī)則說(shuō)清楚即可。
2、制定好模板字段的填寫(xiě)邏輯
說(shuō)明每個(gè)字段的填寫(xiě)要求,哪些字段是必填、哪些字段不能重復(fù)等等,就是要說(shuō)清楚字段該怎么填才能導(dǎo)進(jìn)去。
如果字段過(guò)多時(shí),可以拉個(gè)excel表,單獨(dú)說(shuō)明校驗(yàn)邏輯提供給研發(fā)。
示例如下:
3、說(shuō)清楚“如何填寫(xiě)模板”
對(duì)于導(dǎo)入模板的填寫(xiě)我們可以使用以下方式:
①新增一個(gè)sheet頁(yè)寫(xiě)模板說(shuō)明
②在模板前幾行填寫(xiě)模板說(shuō)明
③在單元格添加批注的方式填寫(xiě)說(shuō)明
④填寫(xiě)示例數(shù)據(jù)
新增一行示例數(shù)據(jù),讓用戶知道該怎么填寫(xiě)。
以上的方式我們也可以結(jié)合在一起,同時(shí)提示用戶該怎么填。
4、結(jié)合excel里的功能設(shè)計(jì)模板
① 如果填寫(xiě)的數(shù)據(jù)是固定值,我們可以使用下拉框,直接讓用戶下拉選擇。
如果字典值過(guò)多的時(shí)候,可以新增一個(gè)sheet頁(yè),通過(guò)設(shè)置下拉框取值范圍即可。
②在模板內(nèi)的添加基礎(chǔ)校驗(yàn)
使用excel里的“有效性”,添加基礎(chǔ)的校驗(yàn)。
五、其它注意點(diǎn)
1、每次導(dǎo)入文件的數(shù)量
在開(kāi)始導(dǎo)入前,首先要看每次支持導(dǎo)入的文件數(shù)量。一般每次導(dǎo)入1個(gè)文件。當(dāng)然也能一次導(dǎo)入多個(gè)文件,直接每次選擇多個(gè)文件即可。當(dāng)同時(shí)導(dǎo)入多個(gè)文件時(shí),需要注意每個(gè)文件直接是否有關(guān)系,每個(gè)文件的處理是否有處理順序。
2、同步還是異步處理
同步處理就是導(dǎo)入后,直接處理,頁(yè)面處于加載狀態(tài),后臺(tái)進(jìn)行導(dǎo)入處理,此時(shí)用戶不能進(jìn)行其它操作,只能當(dāng)處理完成后,才能進(jìn)行其他操作。對(duì)于數(shù)據(jù)量較小,處理時(shí)間在用戶可接受時(shí)間內(nèi),比如說(shuō)10秒內(nèi),可以采用同步處理的方式。我和研發(fā)溝通后,同步處理起來(lái)比較方便,我們采用的都是同步處理方式。
異步處理,就是上傳文件后,在后臺(tái)進(jìn)行處理,用戶可以進(jìn)行其他操作。當(dāng)后臺(tái)處理完成后,在提示用戶處理結(jié)果。對(duì)于數(shù)據(jù)量較大,處理時(shí)間較長(zhǎng)時(shí),可以采用異步處理的方式。
3、導(dǎo)入文件交互方式的選擇
導(dǎo)入文件的交互方式要看采用哪種數(shù)據(jù)處理方式,才能設(shè)計(jì)對(duì)應(yīng)的頁(yè)面交互。
我就不一個(gè)個(gè)說(shuō)了,給大家舉個(gè)例子:
最簡(jiǎn)單的,每次導(dǎo)入1個(gè)文件+出現(xiàn)一個(gè)錯(cuò)誤數(shù)據(jù)則無(wú)法導(dǎo)入+同步處理。
下載模板:列表里有個(gè)下載模板的入口
選擇文件:點(diǎn)擊導(dǎo)入,直接彈出文件選擇框,每次只能選擇1個(gè)文件,上傳文件就開(kāi)始進(jìn)行導(dǎo)入。
導(dǎo)入后,程序同步處理,添加個(gè)加載狀態(tài),當(dāng)有錯(cuò)誤數(shù)據(jù)時(shí),則報(bào)錯(cuò)提示。
導(dǎo)入成功后,加個(gè)“導(dǎo)入成功”的提示。
其它的交互方式大家可以搜搜看,有很多。
4、添加日志記錄
由于我們對(duì)數(shù)據(jù)要求很?chē)?yán)格,所以我們添加了日志記錄,用于數(shù)據(jù)追查。
5、保證功能的連續(xù)性
在我們系統(tǒng)中,數(shù)據(jù)導(dǎo)入后,需要將導(dǎo)入的數(shù)據(jù)提交給審核人員進(jìn)行審核,所以我們?cè)趯?dǎo)入成功后,添加了“提交審核”的功能,用戶可以直接提交數(shù)據(jù)去審核。
為了保證流程的流暢,我們可以在導(dǎo)入完成后,提供接下來(lái)的功能操作入口。
總結(jié)
說(shuō)了很多,導(dǎo)入excel是常見(jiàn)的基礎(chǔ)功能,但是涉及到的內(nèi)容很多,是個(gè)細(xì)活,從模板制作到校驗(yàn)邏輯,到報(bào)錯(cuò)提示,直到數(shù)據(jù)導(dǎo)入成功。
能把導(dǎo)入excel搞清楚,那我們弄其它數(shù)據(jù)相關(guān)的需求也就so easy 了。
咱們?cè)倩仡^看,導(dǎo)入excel其實(shí)就是導(dǎo)入到數(shù)據(jù)庫(kù)。
當(dāng)你對(duì)數(shù)據(jù)庫(kù)有了解,你就會(huì)清晰很多,數(shù)據(jù)庫(kù)有字段格式、長(zhǎng)度、是否為空,外鍵等要求,這些不就是excel中的校驗(yàn)。
所以還是推薦大家了解數(shù)據(jù)庫(kù)的知識(shí)來(lái)豐富自己~
專欄作家
王大鹿,公眾號(hào):產(chǎn)品大鹿,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注醫(yī)療領(lǐng)域,擅長(zhǎng)原型設(shè)計(jì)、需求分析和方案設(shè)計(jì),分享能落地的工作技能~
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
再次更新新增怎么處理
導(dǎo)入完成后,提供接下來(lái)的功能操作入口,用戶體驗(yàn)上比較好,但是導(dǎo)入數(shù)據(jù)的準(zhǔn)確性及補(bǔ)充不能二次確認(rèn),這點(diǎn)好像有沖突
很清晰的邏輯描述,收藏點(diǎn)贊??
很詳細(xì)很用心,受教了
干貨,受益匪淺
學(xué)習(xí)了
這是真干貨,點(diǎn)贊