做項目期間做到一個需求是用excel批量導入計本信息,剛開始接到這個需求頭腦一片空白,因為之前沒做過,不過空白是空白但還是要做。
優(yōu)勢:
(1)系統(tǒng)在添加頁面操作比較浪費時間,用導入可以增加系統(tǒng)的可用性;
(2)操作簡單;
劣勢:
excel導入數(shù)據(jù)類型不好控制;如時間類型,參數(shù)類型等,模板設計;
(1)提供Excel導入模板;
(2)導入Excel Map映射機制;
(3)Poi架包
(1)模板設置
一些參數(shù)下拉列表的設置,如:證件類型、人員性別、政治面貌等,在界面上操作都是選擇項,而在Excel模板中我們也要這樣設置,以免用戶在Excel里錯誤填寫;
操作步驟:
1.選擇要設置的單元格,譬如A1單元格;
2.選擇菜單欄的“數(shù)據(jù)”→“有效性”→出現(xiàn)“數(shù)據(jù)有效性”彈出窗口;
3.在“設置”選項中→“有效性條件”→“允許”中選擇“序列”→右邊的“忽略空值”和“提供下拉菜單”全部打勾→在“來源”下面輸入數(shù)據(jù),譬如“1,2,3,4,5,6,7,8,9”(不包括雙引號,分割符號“,”必須為半角模式)→按“確定”就OK了,再次選擇該A1單元格,就出現(xiàn)了下菜單。
但是往往我們的數(shù)據(jù)庫存的的代碼而不是我們在外面選擇的可以看到的值,我們在action后臺獲取模板里的值需要進行參數(shù)轉(zhuǎn)換。這一轉(zhuǎn)換在Excel導入功能中是必要的內(nèi)容,在多種類型的參數(shù)轉(zhuǎn)換中,我們可以定義一個Map緩存,用傳進去的值去匹配map里的value值,再根據(jù)value值去匹配所需要的key值。
(2)時間設置
如果數(shù)據(jù)庫所需要的時間類型為data類型,我們可以在模板上選中時 間的一列點擊右鍵,設置單元格格式,選擇一項為“yyyy-mm-dd”即可,然而開發(fā)人員所做的程序用戶不一定那樣操作,因為Excel里的時間格式會隨著用戶復制信息而改 變。目前本人在MAP映射機制里能夠識別String類型和Data類型,所以我們就難以確定用戶傳的是Data類型還是String類型,這樣就無形的增加開發(fā)人員的苦惱,首先我們要在時間列里注明我們系統(tǒng)支持的時間格式。最佳實踐方式為:在時間列標注時間格式;模板設置為文本格式;用戶可以在時間列中以文本格式填寫“yyyy-mm-dd”、"yyyy年mm月dd日"、"yyyy.mm.dd"、"yyyy/mm/dd"四種樣式,然后在后臺進行時間段截取 我們數(shù)據(jù)庫需要的類型。
在一次導入的過程中,有時也會有失敗的情況,所以我們在導入的過程中也需要回導入之前的結(jié)果,可以增加用戶的可用性。
對于開發(fā)人員來說,不僅能夠正確的理解需求并開發(fā)程序,我們還需要站在用戶的角度去考慮我們開發(fā)的系統(tǒng)可用性,更方便用戶去操作系統(tǒng)辦理相關(guān)業(yè)務。