亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于xml解析的導(dǎo)入excel文件的方法與流程

文檔序號:12465171閱讀:477來源:國知局

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說是一種實(shí)用性強(qiáng)、基于xml解析的導(dǎo)入excel文件的方法。



背景技術(shù):

眾所周知,excel是一種常見的文件存儲方式,然而目前的存儲方式為數(shù)據(jù)庫,因此將excel文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中是數(shù)據(jù)處理和數(shù)據(jù)采集不可避免的。目前傳統(tǒng)的解析excel的方式存在很多問題,例如:文件不能過大(數(shù)據(jù)不能超過5萬條,每條數(shù)據(jù)不能超脫10列),excel中文件的記錄數(shù)超過5萬條(每一條記錄的列數(shù)超過10列)時(shí),java虛擬機(jī)報(bào)內(nèi)存溢出,無法打開數(shù)據(jù)文件;excel僅能包含一個(gè)表頭信息,當(dāng)一個(gè)excel文件中存在多個(gè)表頭信息時(shí),必須將該excel拆分為多個(gè)不同表頭的excel(一個(gè)表頭對應(yīng)一個(gè)excel數(shù)據(jù)文件),逐個(gè)導(dǎo)入;excel中存在一些行,它們不屬于任何一個(gè)表頭,但是該行中的部分?jǐn)?shù)據(jù)需要作為該表頭的某列信息導(dǎo)入;對于excel數(shù)據(jù)導(dǎo)入中,需要將某幾列進(jìn)行簡單的處理后,才能導(dǎo)入;不能自動產(chǎn)生附件信息等。

對于上述問題,現(xiàn)在的導(dǎo)入方式缺乏靈活性和易用性,從而導(dǎo)致需要浪費(fèi)大量的人力物力對數(shù)據(jù)的導(dǎo)入做特殊的處理。

基于此,現(xiàn)提供一種基于xml解析的導(dǎo)入excel文件的方法,通過將excel文件當(dāng)做一個(gè)xml文件進(jìn)行解析和處理,并設(shè)定特殊的匹配規(guī)則實(shí)現(xiàn)大數(shù)據(jù)量excel文件的快速和靈活的導(dǎo)入,從而為海量數(shù)據(jù)的采集和數(shù)據(jù)提供了行之有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種實(shí)用性強(qiáng)、基于xml解析的導(dǎo)入excel文件的方法。

一種基于xml解析的導(dǎo)入excel文件的方法,包括請求模塊、分發(fā)模塊和匯總模塊,其中,

請求模塊用于請求文件批量參數(shù)處理;

分發(fā)模塊用于任務(wù)進(jìn)程智能分發(fā)掃描,即根據(jù)用戶設(shè)置進(jìn)程數(shù)自動分發(fā)掃描任務(wù)并開啟相應(yīng)進(jìn)程進(jìn)行滲透掃描;

匯總模塊用于掃描結(jié)果智能匯總分析,即自動保存并檢測掃描結(jié)果,提取存在sql注入漏洞的請求及詳細(xì)結(jié)果。

所述請求模塊通過用戶指定全部請求文件保存的根目錄路徑地址,對路徑下全部文件進(jìn)行分析篩選,選出可進(jìn)行掃描的請求文件,然后根據(jù)用戶配置的有效會話信息、數(shù)據(jù)庫服務(wù)器和進(jìn)程數(shù),自動對請求執(zhí)行批量文本處理以保證請求能夠正常得到服務(wù)器響應(yīng)。

所述分發(fā)模塊用于開啟指定數(shù)目的進(jìn)程,實(shí)現(xiàn)多進(jìn)程同時(shí)批量進(jìn)行sql注入掃描,掃描過程中該分發(fā)模塊識別全部參數(shù),并對所有參數(shù)發(fā)送測試語句,分析響應(yīng)來判斷sql注入。

所述匯總模塊在全部掃描完畢后,智能檢測全部掃描結(jié)果,檢索存在sql注入漏洞的請求并將漏洞請求掃描結(jié)果匯總到指定目錄,方便使用者進(jìn)行結(jié)果統(tǒng)計(jì)以及具體查看。

一種基于xml解析的導(dǎo)入excel文件的方法,其實(shí)現(xiàn)過程為:將excel作為一個(gè)xml進(jìn)行解析,通過比對excel中表頭信息,解析xml中每一個(gè)數(shù)據(jù)單元,并進(jìn)行格式驗(yàn)證,對數(shù)據(jù)格式正確的行,導(dǎo)入到相應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)表中。

將excel進(jìn)行解析以兩次遍歷的方式實(shí)現(xiàn),第一次遍歷單表頭的情況,將每行與設(shè)定的表頭進(jìn)行匹配,確認(rèn)該excel文件中匹配的表頭的相關(guān)信息;第二次遍歷處理多個(gè)表頭和表頭數(shù)據(jù)量較多的情況,通過將將原excel拆分為若干僅有一個(gè)表頭的excel,然后再進(jìn)入啟動線程導(dǎo)入數(shù)據(jù)庫的步驟。

在第一次遍歷時(shí),確認(rèn)xcel文件中匹配的表頭的相關(guān)信息包括:

開始行:匹配的表頭的數(shù)據(jù)的第一行在整個(gè)excel文件中出現(xiàn)的行數(shù);

結(jié)束行:匹配的表頭的數(shù)據(jù)的最后一行在整個(gè)excel文件中出現(xiàn)的行數(shù)。

在第二次遍歷時(shí),將excel拆分為不同的excel,拆分后的每一個(gè)excel文件僅有一個(gè)表頭,并且數(shù)據(jù)條數(shù)不超過1000條,然后啟用多線程,對分割后的每個(gè)excel數(shù)據(jù)文件啟動一個(gè)線程去導(dǎo)入數(shù)據(jù)庫中。

對于解析后的數(shù)據(jù),匹配若干sheet頁和表頭信息,然后拆分表頭信息,產(chǎn)生拆分后的子文件,并填充到匹配規(guī)則產(chǎn)生的附件信息,最后導(dǎo)入數(shù)據(jù)庫中。

所述匹配規(guī)則是指通過以下原則進(jìn)行匹配并保存:首先匹配標(biāo)題行上一行,即表頭的上一行信息;然后匹配文件名,即該excel的文件名;再次匹配標(biāo)題行的某一行;最后匹配常量;匹配結(jié)束后將對應(yīng)的匹配信息保存到每一個(gè)拆分后的excel中,同時(shí)不合法的數(shù)據(jù)保存到一個(gè)異常數(shù)據(jù)的excel中。

本發(fā)明的一種基于xml解析的導(dǎo)入excel文件的方法,具有以下優(yōu)點(diǎn):

本發(fā)明的一種基于xml解析的導(dǎo)入excel文件的方法,通過將excel文件當(dāng)做一個(gè)xml文件進(jìn)行解析和處理,并設(shè)定特殊的匹配規(guī)則實(shí)現(xiàn)大數(shù)據(jù)量excel文件的快速和靈活的導(dǎo)入,從而為海量數(shù)據(jù)的采集和數(shù)據(jù)提供了行之有效的解決方案;通過設(shè)定了表頭信息進(jìn)行匹配,將大數(shù)據(jù)量文件進(jìn)行拆分,提高的導(dǎo)入的效率;通過設(shè)定特殊的處理方式,提高了數(shù)據(jù)導(dǎo)入的靈活性和易用性,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。

具體實(shí)施方式

下面結(jié)合具體實(shí)施例對本發(fā)明作進(jìn)一步說明。

一種基于xml解析的導(dǎo)入excel文件的方法,根據(jù)不同表頭信息和設(shè)定的特殊表頭處理規(guī)則(標(biāo)題行上一行、文件名、標(biāo)題行的某一行、常量),將大數(shù)據(jù)量的excel進(jìn)行拆分和特殊處理信息的自動生成,并分別進(jìn)行數(shù)據(jù)導(dǎo)入。

本發(fā)明通過將excel文件解析為xml文件,并設(shè)定特殊的匹配規(guī)則,將excel文件導(dǎo)入數(shù)據(jù)庫中。

其實(shí)現(xiàn)過程為:將excel作為一個(gè)xml進(jìn)行解析,通過比對excel中表頭信息,解析xml中每一個(gè)數(shù)據(jù)單元,并進(jìn)行格式驗(yàn)證,對數(shù)據(jù)格式正確的行,導(dǎo)入到相應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)表中。

本方法將excel當(dāng)做一個(gè)xml進(jìn)行解析,通過比對excel中表頭信息,解析xml中每一個(gè)數(shù)據(jù)單元,并進(jìn)行相應(yīng)的格式驗(yàn)證,對數(shù)據(jù)格式正確的行,導(dǎo)入到相應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)表中。

采用兩次遍歷的方式,第一次遍歷主要完成每行與設(shè)定的表頭進(jìn)行匹配,確認(rèn)該excel文件中匹配的表頭的相關(guān)信息,主要有:

(1)開始行:比配的表頭的數(shù)據(jù)的第一行在整個(gè)excel文件中出現(xiàn)的行數(shù);

(2)結(jié)束行:比配的表頭的數(shù)據(jù)的最后一行在整個(gè)excel文件中出現(xiàn)的行數(shù);

第二次遍歷主要處理多個(gè)表頭和表頭數(shù)據(jù)量較多的情況,將excel拆分為不同的excel(保證每一個(gè)excel文件僅有一個(gè)表頭,并且數(shù)據(jù)條數(shù)不超過1000條),其次啟用多線程,對分割后的每個(gè)excel數(shù)據(jù)文件啟動一個(gè)線程去導(dǎo)入數(shù)據(jù)庫中。

數(shù)據(jù)列處理的規(guī)則:

(1)標(biāo)題行上一行:表頭的上一行信息。

(2)文件名:該excel的文件。

(3)標(biāo)題行的某一行。

(4)常量。

通過設(shè)定特定的匹配表達(dá)式和匹配算法,從中提取需要的數(shù)據(jù):例如:

信息為:"序號:2 客戶名稱:孟偉 客戶編號:A3701021970051145110";匹配表達(dá)式為:"#XH#: #XH2# #KHMC#:#NAME# #KHBH#:#KHBHNO#";通過匹配算法可以快速的獲取客戶的名稱(NAME:孟偉)和客戶編號(KHBHNO:A3701021970051145110)

在拆分excel時(shí),通過比對(3)的匹配規(guī)則將這些信息保存到每一個(gè)拆分后的excel中,對于不符合條件的非法數(shù)據(jù),保存到特定的excel中(后期可以認(rèn)為處理這些非法數(shù)據(jù)),同時(shí)啟動線程進(jìn)行數(shù)據(jù)的導(dǎo)入處理。

在拆分時(shí)進(jìn)行數(shù)據(jù)格式和導(dǎo)入規(guī)則的驗(yàn)證,將不合法的數(shù)據(jù)保存到一個(gè)異常數(shù)據(jù)的excel中(在第一列前插入一列,用于記錄該非法行在原excel中所在的行),可以通過修改非法數(shù)據(jù),完成全部數(shù)據(jù)的導(dǎo)入。

上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的一種基于xml解析的導(dǎo)入excel文件的方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1