對(duì)于大批量的數(shù)據(jù),經(jīng)常需要從Excel中導(dǎo)入到系統(tǒng)中。
導(dǎo)入Excel的開發(fā)方式和做一個(gè)頁(yè)面,頁(yè)面里有若干格子給用戶填寫,點(diǎn)擊保存按鈕的過(guò)程大致相同。
導(dǎo)入復(fù)雜Excel用到的技巧和數(shù)據(jù)保存中一樣,這里再集中介紹一下。
1.導(dǎo)入的字段
是非字段可以用 是/否,true/false, 以及符號(hào) √ 和 ×。
字典項(xiàng)字段,系統(tǒng)自動(dòng)會(huì)生成下拉選項(xiàng)框。導(dǎo)入Excel的時(shí)候,如果一個(gè)格子的控件是下拉選項(xiàng)框,會(huì)根據(jù)excel格子的內(nèi)容,到下拉選項(xiàng)中找出對(duì)應(yīng)的項(xiàng),將數(shù)值保存到數(shù)據(jù)表的這個(gè)字段中。
引用字段,該類型的字段,系統(tǒng)自動(dòng)會(huì)生成下拉數(shù)據(jù)集。如果一個(gè)格子的控件是下拉數(shù)據(jù)集,會(huì)根據(jù)Excel格子的內(nèi)容,到下拉數(shù)據(jù)集中對(duì)應(yīng)的數(shù)據(jù)表里,尋找這個(gè)顯示值對(duì)應(yīng)的鍵(id),然后把主鍵保存到數(shù)據(jù)表的這個(gè)字段中。
如果引用字段在Excel里是id或者代碼,而不是顯示值。導(dǎo)入Excel會(huì)報(bào)錯(cuò)無(wú)法找到這個(gè)名字的記錄。這時(shí)候只需要將這個(gè)格子的控件類型從下拉數(shù)據(jù)集改為普通就可以了。
如果Excel里的引用字段不是顯示值,可以在控件配置中進(jìn)行配置。例如用戶的名稱不是唯一的,為了確保正確,可以改為按照登錄名導(dǎo)入,只需要在控件配置里將顯示列改為
`table.用戶.登錄名`
或者添加額外篩選條件。例如用戶的名稱不唯一,但導(dǎo)入excel里增加部門和班組就可以唯一確定了。

需要注意,導(dǎo)入Excel的時(shí)候,盡量使用左邊和上邊格子的值。
2.一個(gè)格子計(jì)算相關(guān)字段
例如 計(jì)劃表的開始日期,結(jié)束日期是相同的,Excel只有一個(gè)格子來(lái)表示。
同時(shí)記錄的名稱是用一個(gè)基本名稱和日期組合得到的。這就是三個(gè)字段依賴同一個(gè)格子。
- 配置隱藏值
在這個(gè)格子 G1 的隱藏值里配置根據(jù)格子的值來(lái)計(jì)算的其他兩個(gè)字段的值。
在格子G1的高級(jí)屬性->隱藏值里配置表達(dá)式:
{"date":value(),"dateName":Date.parseDate(value()).toString("M月d日")+B1}
隱藏值是一個(gè)鍵值對(duì)對(duì)象。
date是給第一個(gè)隱藏值起的名字,值是value(),也就是和當(dāng)前格子的值相同,用于結(jié)束日期
dateName是給第二個(gè)隱藏值起的名字,值Date.parseDate(value()).toString("M月d日")+B1 表示值是這個(gè)格子代表的日期的幾月幾日加上前面B2格子的值,例如Excel中,B1格子的值是"開發(fā)部計(jì)劃",G1格是2020-03-04 那么G1格的隱藏值dateName就是:"3月4日開發(fā)部計(jì)劃"。
- 配置隱藏值的保存至屬性
在G1格的保存至中撰寫表達(dá)式:
jihua.開始日期 | save.hide(jihua.結(jié)束日期,"date") | save.hide(jihua.名稱,"dateName")
用| 分開的多個(gè)保存至表達(dá)式里。
jihua.開始日期表示把單元格的值保存到j(luò)ihua 數(shù)據(jù)的字段 開始日期 中。如上示例中就是 2020-03-04save.hide(jihua.結(jié)束日期,"date")表示把單元格的隱藏值date的值,保存到j(luò)ihua 數(shù)據(jù)的字段 結(jié)束日期 中。如上示例中就是 2020-03-04save.hide(jihua.名稱,"dateName")表示把單元格的隱藏值dateName的值,保存到j(luò)ihua 數(shù)據(jù)的字段 結(jié)束日期 中。如上示例中就是"3月4日開發(fā)部計(jì)劃"。
3.橫向擴(kuò)展和縱向擴(kuò)展
導(dǎo)入Excel中,暫時(shí)支持在第一排中寫橫向擴(kuò)展,以及第二行中寫縱向擴(kuò)展。
-
橫向擴(kuò)展的主表加縱向擴(kuò)展的子表。
主表是計(jì)劃表,每天一個(gè)計(jì)劃。子表是計(jì)劃人員表,列著該日的計(jì)劃包含哪些人員。
導(dǎo)入計(jì)劃
- 導(dǎo)入縱向多重?cái)U(kuò)展
導(dǎo)入的Excel先是部門的select,然后是部門下的用戶的select。一次性導(dǎo)入多個(gè)部門,以及這些部門下的用戶。
導(dǎo)入縱向多重?cái)U(kuò)展除了兩重?cái)U(kuò)展外,可以支持n重?cái)U(kuò)展。
- 導(dǎo)入交叉擴(kuò)展
每個(gè)學(xué)生對(duì)應(yīng)每門課程的考試成績(jī)。
