數(shù)據(jù)保存(五) - 導(dǎo)入Excel高級(jí)

對(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è)格子。

  1. 配置隱藏值
    在這個(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ì)劃"。

  1. 配置隱藏值的保存至屬性

在G1格的保存至中撰寫表達(dá)式:
jihua.開始日期 | save.hide(jihua.結(jié)束日期,"date") | save.hide(jihua.名稱,"dateName")

| 分開的多個(gè)保存至表達(dá)式里。

  • jihua.開始日期表示把單元格的值保存到j(luò)ihua 數(shù)據(jù)的字段 開始日期 中。如上示例中就是 2020-03-04

  • save.hide(jihua.結(jié)束日期,"date")表示把單元格的隱藏值date的值,保存到j(luò)ihua 數(shù)據(jù)的字段 結(jié)束日期 中。如上示例中就是 2020-03-04

  • save.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ī)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容