本申請(qǐng)涉及數(shù)據(jù)處理,具體地涉及一種表格處理方法、裝置及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著全球化業(yè)務(wù)的擴(kuò)展,軟件產(chǎn)品的多語(yǔ)言支持成為提升用戶體驗(yàn)的關(guān)鍵因素之一。傳統(tǒng)的表格國(guó)際化方案使用apache的poi類(lèi)庫(kù),無(wú)原生能力將表頭抽取成對(duì)象來(lái)讀取生成excel表格。
2、使用poi類(lèi)庫(kù)實(shí)現(xiàn)表格國(guó)際化,因?yàn)閜oi傾向?qū)⒄麄€(gè)excel表格文件加載到內(nèi)存中進(jìn)行操作,當(dāng)處理大型excel表格文件時(shí),可能會(huì)消耗較多的內(nèi)存,對(duì)于包含大量數(shù)據(jù)或復(fù)雜格式的國(guó)際化文件,可能導(dǎo)致內(nèi)存溢出問(wèn)題,尤其是在資源受限的環(huán)境中。poi將整個(gè)excel表格文件加載到內(nèi)存中進(jìn)行操作可能會(huì)遇到性能瓶頸,例如,處理包含多語(yǔ)言文本的復(fù)雜表格時(shí),性能影響可能更加明顯。poi處理表格須在代碼中處理,無(wú)法抽象出具體的類(lèi)對(duì)象來(lái)靈活操作。
3、因此,現(xiàn)有技術(shù)中對(duì)表格國(guó)際化的處理所采用的方案,內(nèi)存消耗較大,在處理包含多語(yǔ)言文本的復(fù)雜表格時(shí)的性能、代碼可讀性和可維護(hù)性影響差。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例的目的是提供一種表格處理方法、裝置及存儲(chǔ)介質(zhì),用以解決現(xiàn)有技術(shù)中在處理包含多語(yǔ)言文本的復(fù)雜表格時(shí)的性能、代碼可讀性和可維護(hù)性影響差的問(wèn)題。
2、為了實(shí)現(xiàn)上述目的,本申請(qǐng)第一方面提供一種表格處理方法,包括:
3、在用戶發(fā)起的針對(duì)任一語(yǔ)種的表格的導(dǎo)入請(qǐng)求的情況下,調(diào)用與導(dǎo)入請(qǐng)求對(duì)應(yīng)的導(dǎo)入攔截器,以通過(guò)導(dǎo)入攔截器攔截導(dǎo)入請(qǐng)求;
4、根據(jù)導(dǎo)入請(qǐng)求獲取所需導(dǎo)入的表格以及導(dǎo)入表格所需采用的導(dǎo)入語(yǔ)種;
5、調(diào)用與表格對(duì)應(yīng)的表格實(shí)體類(lèi),以得到表格實(shí)體類(lèi)上的i18nkey注解的key值;
6、根據(jù)key值以及國(guó)際化文件確定表格在導(dǎo)入語(yǔ)種下所對(duì)應(yīng)的國(guó)際化表頭;
7、解析表格,以得到表格的每個(gè)國(guó)際化表頭下的每個(gè)屬性的數(shù)據(jù)內(nèi)容;
8、在數(shù)據(jù)內(nèi)容為非空的情況下,將數(shù)據(jù)內(nèi)容存入至與表格對(duì)應(yīng)的導(dǎo)入結(jié)果文件;
9、根據(jù)導(dǎo)入結(jié)果文件中的全部數(shù)據(jù)內(nèi)容完成針對(duì)表格的導(dǎo)入操作。
10、在本申請(qǐng)實(shí)施例中,根據(jù)導(dǎo)入結(jié)果文件中的全部數(shù)據(jù)內(nèi)容完成針對(duì)表格的導(dǎo)入操作包括:判斷導(dǎo)入結(jié)果文件中的數(shù)據(jù)內(nèi)容的導(dǎo)入數(shù)量是否大于第一預(yù)設(shè)數(shù)量;在導(dǎo)入數(shù)量大于第一預(yù)設(shè)數(shù)量的情況下,發(fā)送異常提示,導(dǎo)入表格失??;在導(dǎo)入數(shù)量小于或等于第一預(yù)設(shè)數(shù)量的情況下,導(dǎo)入表格成功。
11、在本申請(qǐng)實(shí)施例中,方法還包括:判斷導(dǎo)入結(jié)果文件中的數(shù)據(jù)內(nèi)容的導(dǎo)入數(shù)量是否大于第二預(yù)設(shè)數(shù)量;在導(dǎo)入數(shù)量小于第二預(yù)設(shè)數(shù)量的情況下,實(shí)時(shí)處理每個(gè)國(guó)際化表頭下的每個(gè)屬性的數(shù)據(jù)內(nèi)容;在導(dǎo)入數(shù)量大于或等于第二預(yù)設(shè)數(shù)量的情況下,異步處理每個(gè)國(guó)際化表頭下的每個(gè)屬性的數(shù)據(jù)內(nèi)容。
12、在本申請(qǐng)實(shí)施例中,方法還包括:在用戶發(fā)起的針對(duì)任一語(yǔ)種的表格的導(dǎo)出請(qǐng)求的情況下,調(diào)用與導(dǎo)出請(qǐng)求對(duì)應(yīng)的導(dǎo)出攔截器,以通過(guò)導(dǎo)出攔截器攔截導(dǎo)出請(qǐng)求;根據(jù)導(dǎo)出請(qǐng)求獲取所需導(dǎo)出的至少一個(gè)數(shù)據(jù)內(nèi)容、導(dǎo)出全部的數(shù)據(jù)內(nèi)容所需采用的導(dǎo)出語(yǔ)種以及表格實(shí)體類(lèi);判斷所需導(dǎo)出的至少一個(gè)數(shù)據(jù)內(nèi)容是否達(dá)到單次導(dǎo)出限制數(shù)量;在未達(dá)到單次導(dǎo)出限制數(shù)量的情況下,根據(jù)表格實(shí)體類(lèi)確定與當(dāng)前所需導(dǎo)出的數(shù)據(jù)內(nèi)容對(duì)應(yīng)的key值;根據(jù)key值以及國(guó)際化文件確定當(dāng)前所需導(dǎo)出的數(shù)據(jù)內(nèi)容在導(dǎo)出語(yǔ)種下所對(duì)應(yīng)的國(guó)際化表頭;將每個(gè)數(shù)據(jù)內(nèi)容填入至每個(gè)國(guó)際化表頭下的屬性中,以生成與當(dāng)前所需導(dǎo)出的數(shù)據(jù)內(nèi)容對(duì)應(yīng)的導(dǎo)出文件。
13、在本申請(qǐng)實(shí)施例中,判斷所需導(dǎo)出的至少一個(gè)數(shù)據(jù)內(nèi)容是否達(dá)到單次導(dǎo)出限制數(shù)量包括:針對(duì)每個(gè)數(shù)據(jù)內(nèi)容,判斷數(shù)據(jù)內(nèi)容是否為單個(gè)分頁(yè)請(qǐng)求實(shí)例,以得到當(dāng)前所需導(dǎo)出的數(shù)據(jù)內(nèi)容的數(shù)量;調(diào)整與數(shù)據(jù)內(nèi)容對(duì)應(yīng)的單個(gè)分頁(yè)請(qǐng)求實(shí)例的參數(shù),以確定當(dāng)前所能導(dǎo)出的數(shù)據(jù)內(nèi)容的數(shù)量;根據(jù)當(dāng)前所需導(dǎo)出的數(shù)據(jù)內(nèi)容的數(shù)量和當(dāng)前所能導(dǎo)出的數(shù)據(jù)內(nèi)容的數(shù)量判斷是否達(dá)到單次導(dǎo)出限制數(shù)量。
14、在本申請(qǐng)實(shí)施例中,導(dǎo)出攔截器包括導(dǎo)出注解,導(dǎo)出注解包括第一目標(biāo)信息、第一保留信息、證明信息、公共接口可導(dǎo)出信息、字符串導(dǎo)出路徑信息、字符串導(dǎo)出文件名信息、第一數(shù)據(jù)臨界信息、第一數(shù)據(jù)限制信息、第一類(lèi)信息以及字符串回調(diào)名稱(chēng)信息;其中,第一目標(biāo)信息用于指定數(shù)據(jù)導(dǎo)出邏輯,第一保留信息用于指定在運(yùn)行時(shí)期通過(guò)反射機(jī)制讀取導(dǎo)出注解,證明信息用于生成元數(shù)據(jù)信息,公共接口可導(dǎo)出信息用于定義導(dǎo)出注解的名稱(chēng)和公共訪問(wèn)級(jí)別,字符串導(dǎo)出路徑信息用于指定導(dǎo)出的表格的基礎(chǔ)路徑,字符串導(dǎo)出文件名信息用于指定導(dǎo)出的表格的默認(rèn)文件名,第一數(shù)據(jù)臨界信息用于指定異步處理的數(shù)據(jù)臨界值,第一數(shù)據(jù)限制信息用于指定導(dǎo)出數(shù)據(jù)的最大限制數(shù)量,第一類(lèi)信息用于指定導(dǎo)出完成后執(zhí)行的回調(diào)類(lèi),字符串回調(diào)名稱(chēng)信息用于指定回調(diào)bean的名稱(chēng)。
15、在本申請(qǐng)實(shí)施例中,i18nkey注解包括第二目標(biāo)信息、第二目標(biāo)信息以及屬性值,第二目標(biāo)信息用于指定i18nkey注解僅應(yīng)用于類(lèi)的成員變量上,第二目標(biāo)信息用于指定i18nkey注解在編譯時(shí)期可用,以及在運(yùn)行時(shí)期通過(guò)反射機(jī)制讀取,屬性值用于存儲(chǔ)國(guó)際化的鍵值。
16、在本申請(qǐng)實(shí)施例中,導(dǎo)入攔截器包括導(dǎo)入注解,導(dǎo)入注解包括第三目標(biāo)信息、第三保留信息、公共接口可導(dǎo)入信息、字符串導(dǎo)入路徑信息、字符串導(dǎo)入文件名信息、第一類(lèi)信息、第二數(shù)據(jù)臨界信息、第二數(shù)據(jù)限制信息以及第三類(lèi)信息;第三目標(biāo)信息用于指定數(shù)據(jù)導(dǎo)入邏輯,第三保留信息用于指定在運(yùn)行時(shí)期通過(guò)反射機(jī)制讀取導(dǎo)入注解,公共接口可導(dǎo)入信息用于定義導(dǎo)入注解的名稱(chēng)和公共訪問(wèn)級(jí)別,字符串導(dǎo)入路徑信息用于指定導(dǎo)入的表格的基礎(chǔ)路徑,字符串導(dǎo)入文件名信息用于指定導(dǎo)入的表格的默認(rèn)文件名,第一類(lèi)信息用于讀取和處理導(dǎo)入的表格的類(lèi),第二數(shù)據(jù)臨界信息用于指定異步處理的數(shù)據(jù)臨界值,第二數(shù)據(jù)限制信息用于指定導(dǎo)入數(shù)據(jù)的最大限制數(shù)量,第三類(lèi)信息用于定義數(shù)據(jù)導(dǎo)入完成后的回調(diào)類(lèi)。
17、本申請(qǐng)第二方面提供一種表格處理裝置,包括:
18、存儲(chǔ)器,被配置成存儲(chǔ)指令;
19、處理器,被配置成從存儲(chǔ)器調(diào)用指令以及在執(zhí)行指令時(shí)能夠?qū)崿F(xiàn)上述的表格處理方法。
20、本申請(qǐng)第三方面提供一種機(jī)器可讀存儲(chǔ)介質(zhì),該機(jī)器可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有指令,該指令在被處理器執(zhí)行時(shí)使得處理器被配置成執(zhí)行上述的表格處理方法。
21、通過(guò)上述技術(shù)方案,在用戶發(fā)起的針對(duì)任一語(yǔ)種的表格的導(dǎo)入請(qǐng)求的情況下,調(diào)用與導(dǎo)入請(qǐng)求對(duì)應(yīng)的導(dǎo)入攔截器,以通過(guò)導(dǎo)入攔截器攔截導(dǎo)入請(qǐng)求;根據(jù)導(dǎo)入請(qǐng)求獲取所需導(dǎo)入的表格以及導(dǎo)入表格所需采用的導(dǎo)入語(yǔ)種;調(diào)用與表格對(duì)應(yīng)的表格實(shí)體類(lèi),以得到表格實(shí)體類(lèi)上的i18nkey注解的key值;根據(jù)key值以及國(guó)際化文件確定表格在導(dǎo)入語(yǔ)種下所對(duì)應(yīng)的國(guó)際化表頭;解析表格,以得到表格的每個(gè)國(guó)際化表頭下的每個(gè)屬性的數(shù)據(jù)內(nèi)容;在數(shù)據(jù)內(nèi)容為非空的情況下,將數(shù)據(jù)內(nèi)容存入至與表格對(duì)應(yīng)的導(dǎo)入結(jié)果文件;根據(jù)導(dǎo)入結(jié)果文件中的全部數(shù)據(jù)內(nèi)容完成針對(duì)表格的導(dǎo)入操作,提高導(dǎo)入表格的性能,導(dǎo)入表格的效率更高,提升代碼可讀性和可維護(hù)性。
22、本申請(qǐng)實(shí)施例的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。
1.一種表格處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的表格處理方法,其特征在于,所述根據(jù)所述導(dǎo)入結(jié)果文件中的全部數(shù)據(jù)內(nèi)容完成針對(duì)所述表格的導(dǎo)入操作包括:
3.根據(jù)權(quán)利要求1所述的表格處理方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的表格處理方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的表格處理方法,其特征在于,所述判斷所需導(dǎo)出的至少一個(gè)數(shù)據(jù)內(nèi)容是否達(dá)到單次導(dǎo)出限制數(shù)量包括:
6.根據(jù)權(quán)利要求4所述的表格處理方法,其特征在于,所述導(dǎo)出攔截器包括導(dǎo)出注解,所述導(dǎo)出注解包括第一目標(biāo)信息、第一保留信息、證明信息、公共接口可導(dǎo)出信息、字符串導(dǎo)出路徑信息、字符串導(dǎo)出文件名信息、第一數(shù)據(jù)臨界信息、第一數(shù)據(jù)限制信息、第一類(lèi)信息以及字符串回調(diào)名稱(chēng)信息;
7.根據(jù)權(quán)利要求1所述的表格處理方法,其特征在于,所述i18nkey注解包括第二目標(biāo)信息、第二目標(biāo)信息以及屬性值,所述第二目標(biāo)信息用于指定所述i18nkey注解僅應(yīng)用于類(lèi)的成員變量上,所述第二目標(biāo)信息用于指定所述i18nkey注解在編譯時(shí)期可用,以及在運(yùn)行時(shí)期通過(guò)反射機(jī)制讀取,所述屬性值用于存儲(chǔ)國(guó)際化的鍵值。
8.根據(jù)權(quán)利要求1所述的表格處理方法,其特征在于,所述導(dǎo)入攔截器包括導(dǎo)入注解,所述導(dǎo)入注解包括第三目標(biāo)信息、第三保留信息、公共接口可導(dǎo)入信息、字符串導(dǎo)入路徑信息、字符串導(dǎo)入文件名信息、第一類(lèi)信息、第二數(shù)據(jù)臨界信息、第二數(shù)據(jù)限制信息以及第三類(lèi)信息;
9.一種表格處理裝置,其特征在于,所述裝置包括:
10.一種機(jī)器可讀存儲(chǔ)介質(zhì),該機(jī)器可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有指令,其特征在于,該指令在被處理器執(zhí)行時(shí)使得所述處理器被配置成執(zhí)行根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的表格處理方法。