對(duì)于大批量的數(shù)據(jù)响蓉,經(jīng)常需要從Excel中導(dǎo)入到系統(tǒng)中烁设。
導(dǎo)入Excel的開(kāi)發(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ì)劃表的開(kāi)始日期,結(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格子的值是"開(kāi)發(fā)部計(jì)劃",G1格是2020-03-04 那么G1格的隱藏值dateName就是:"3月4日開(kāi)發(fā)部計(jì)劃"巫糙。
- 配置隱藏值的保存至屬性
在G1格的保存至中撰寫表達(dá)式:
jihua.開(kāi)始日期 | save.hide(jihua.結(jié)束日期,"date") | save.hide(jihua.名稱,"dateName")
用| 分開(kāi)的多個(gè)保存至表達(dá)式里朗儒。
jihua.開(kāi)始日期
表示把單元格的值保存到j(luò)ihua 數(shù)據(jù)的字段 開(kāi)始日期 中。如上示例中就是 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日開(kāi)發(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ī)啡捶。