本發(fā)明涉及數(shù)據(jù)處理領域,更為具體而言,涉及一種線上報表管理方法、系統(tǒng)、裝置及存儲介質(zhì)。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的發(fā)展,基于網(wǎng)絡的應用越來越普遍,隨著更加復雜化的同時,需求也變得多種多樣。目前,只是一些常規(guī)的、簡單的報表導入,比較復雜的報表模板導入就比較復雜,尤其在信息管理系統(tǒng)中,常見復雜報表。當前銀行系統(tǒng)報表導入過程中普遍存在一定操作風險,具體表現(xiàn)在以下幾個方面:對于報表的維護主要集中在線下文檔填報流轉(zhuǎn)匯總為主,這種形式對于報表數(shù)據(jù)的準確性、完整性有較大的風險;對于報表間同一指標,同一維度下的表間校驗,依賴于人工判斷;對于同一報表的多個數(shù)據(jù)版本管理,更是缺乏一定的關(guān)聯(lián)機制,不利于決策者分析比對。同時還存在,線下的文檔流轉(zhuǎn)容易出現(xiàn)文檔格式或公式被篡改,各填報版本不一致等操作風險問題。技術(shù)實現(xiàn)要素:鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明實施方式提供了一種線上報表管理方法、系統(tǒng)、裝置及存儲介質(zhì),通過兩個診斷入口,能夠有效解決當前銀行報表模板規(guī)范化性差,報表填制的標準化不高,存在操作風險和工作流轉(zhuǎn)效率低的問題。具體地,本發(fā)明實施方式提供了一種線上報表管理方法,其中,所述方法包括:根據(jù)預設的模板定義規(guī)則導入報表模板文件,讀取所述報表模板文件的區(qū)域定位信息和模板描述文件信息;根據(jù)所述區(qū)域定位信息和所述模板描述文件信息,對所述報表模板文件的行頭列頭區(qū)信息和內(nèi)容區(qū)信息進行加載;對加載后的所述報表模板文件進行保存。相應地,本發(fā)明實施方式還提供了一種線上報表管理系統(tǒng),其特征在于,所述系統(tǒng)包括:導入模塊,用于根據(jù)預設的模板定義規(guī)則導入報表模板文件,讀取所述報表模板文件的區(qū)域定位信息和模板描述文件信息;加載模塊,用于根據(jù)所述區(qū)域定位信息和所述模板描述文件信息,對所述報表模板文件的行頭列頭區(qū)信息和內(nèi)容區(qū)信息進行加載;保存模塊,用于對加載后的所述報表模板文件進行保存。此外,本發(fā)明實施方式還提供一種線上報表管理裝置,包括存儲器和處理器,其中,所述存儲器用于存儲一條或多條供所述處理器調(diào)用執(zhí)行的計算機指令,其中,所述處理器通過執(zhí)行所述計算機指令實現(xiàn)如前所述的方法。此外,本發(fā)明實施方式還提供一種計算機存儲介質(zhì),其特征在于,所述計算機存儲介質(zhì)存儲有程序,所述程序在執(zhí)行時實現(xiàn)如前所述的方法。通過采用本發(fā)明實施方式具有下述有益效果:通過導入報表模板文件的方式,可實現(xiàn)報表模板規(guī)范化管理,提升報表填制的標準化,降低操作風險,提高工作流轉(zhuǎn)效率。附圖說明圖1是根據(jù)本發(fā)明實施方式的一種線上報表管理方法的流程示意圖;圖2是根據(jù)本發(fā)明實施方式的一種線上報表管理系統(tǒng)的架構(gòu)圖;圖3示出了圖2所示系統(tǒng)中的導入模塊100的結(jié)構(gòu)框圖;圖4示出了圖2所示系統(tǒng)中的加載模塊200的結(jié)構(gòu)框圖。具體實施方式為了便于理解本發(fā)明技術(shù)方案的各個方面、特征以及優(yōu)點,下面結(jié)合附圖對本發(fā)明進行具體描述。應當理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護范圍。實施例1:圖1是根據(jù)本發(fā)明實施方式的一種線上報表管理方法的流程示意圖。參照圖1,具體實施例如下,所述方法包括:步驟s1,根據(jù)預設的模板定義規(guī)則導入報表模板文件,讀取所述報表模板文件的區(qū)域定位信息和模板描述文件信息;步驟s2,根據(jù)所述區(qū)域定位信息和所述模板描述文件信息,對所述報表模板文件的行頭列頭區(qū)信息和內(nèi)容區(qū)信息進行加載;步驟s3,對加載后的所述報表模板文件進行保存。具體而已,本發(fā)明涉及的
技術(shù)領域:
包括microsoft的辦公軟件office旗下的電子報表excel,因其簡單的數(shù)據(jù)存儲與操作,得到了廣泛使用。因此使用excel報表的批量導入與導出便成為web應用中時常涉及的內(nèi)容。本文探討的是使用poi的組件hssf對excel中的數(shù)據(jù)進行讀取,通過在web上實現(xiàn)數(shù)據(jù)批量的導入?,F(xiàn)有技術(shù)條件下,針對當前技術(shù)風險,本發(fā)明通過以下功能實現(xiàn)進行風險控制。首先,在報表模板導入時,將報表的表格格式、指標、緯度、度量、單位、計算公式和校驗公式一并保存。當用戶調(diào)用報表模板填報數(shù)據(jù)時,系統(tǒng)自動對必填、不填等格式進行控制,并對用戶填寫的數(shù)據(jù)根據(jù)表內(nèi)校驗規(guī)則進行校驗,校驗不通過的報表,系統(tǒng)將報錯而不能提交到下一環(huán)節(jié)。其次,系統(tǒng)通過預設報表的表間校驗規(guī)則,針對同一任務下的同一填報責任主體填報的不同報表中的同一指標,將所有信息規(guī)范統(tǒng)一,實現(xiàn)報表間合理性、完整性和準確性校驗,降低操作風險。最后,通過對報表的數(shù)據(jù)實行多版本管理,可實現(xiàn)多情景、不同責任主體業(yè)務和財務的數(shù)據(jù)版本比對,有助于審批者看到不同層面經(jīng)營部門和管理部門的判斷差異,有利于計劃編報者看到上級部門決策與本部門編制的差異,更好地執(zhí)行上級單位的管理決策。本發(fā)明通過導入報表模板文件的方式,可實現(xiàn)報表模板規(guī)范化管理,提升報表填制的標準化,降低操作風險,提高工作流轉(zhuǎn)效率。報表模板導入文件分為主文件、及描述文件。主文件包含報表展示區(qū)域的劃分定位信息、模板名稱、編制單位、報表展示區(qū)域(行頭區(qū)、列頭區(qū)、值區(qū))、計算公式、單元格格式(數(shù)字分類、字體、字體顏色)。描述文件包含區(qū)域的劃分定位信息、父模板id、默認指標、默認維度、默認單位、校驗公式、描述表達式(指標、時間維度、機構(gòu)維度、幣別維度、度量、部門、類型,及這些關(guān)鍵字的各種組合)。實施例2:在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述預設的模板定義規(guī)則包括:報表模板的主文件定義規(guī)則、報表模板的描述文件定義規(guī)則、描述表達式規(guī)則、校驗表達式規(guī)則和計算公式規(guī)則。其中,報表模板主文件定義規(guī)則包括:1)區(qū)域劃分定位信息,a1單元格記錄行頭區(qū)起始單元格名,b1單元格記錄行頭區(qū)結(jié)束單元格名,c1單元格記錄列頭區(qū)起始單元格名,d1單元格記錄列頭區(qū)結(jié)束單元格名。值區(qū)的定位,系統(tǒng)可以通過這四個定位信息計算出來。2)行頭區(qū)、列頭區(qū)內(nèi)容為指標、度量、各種維度、類型、描述等。實際數(shù)或計劃數(shù)屬性通過時間維度來判斷。3)行頭區(qū)、列頭區(qū)存在層級關(guān)系,以三種形式體現(xiàn):上包下、左包右、同列縮進。4)值區(qū)內(nèi)容是計算公式、是否可編輯。計算公式必須符合系統(tǒng)限定范圍,四則運算(加、減、乘、除)、sum函數(shù)、max函數(shù)、min函數(shù)等,括號嵌套。是否可編輯通過單元格格式數(shù)字分類是否為會計專用來判斷,是會計專用則不可編輯。值區(qū)單元格屬于實際數(shù)的無計算公式的需要從指標結(jié)果表中獲取歷史數(shù)據(jù),有計算公式的不需要獲取歷史數(shù)據(jù)。5)主文件整體布局包括:區(qū)域定位信息、行頭區(qū)、列頭區(qū)和值區(qū)。其中,報表模板描述文件定義規(guī)則包括:1)區(qū)域劃分定位信息單元格位置與值必須與主文件一致。a3、b3、c3、d3為默認維度預留位置,e3為默認指標預留位置,f3為默認單位。2)行頭區(qū)、列頭區(qū)內(nèi)容為指標、度量、各種維度、類型、描述等的描述表達式。關(guān)聯(lián)的匹配過程分三個階段:自動匹配、手工匹配、自定義指標(前兩道匹配都匹配不上,而模板描述文件規(guī)定為指標的內(nèi)容作為自定義指標)。3)值區(qū)內(nèi)容為校驗表達式(包含必填、上限表達式、下限表達式、個性單位,單位分為默認單位、個性單位)。4)校驗表達式包含必填符號(y必填、n非必填,不填寫默認為n),大于、大于等于、小于、小于等于(比較的對象可以為數(shù)值或單元格名)、單位,各個表達式之間用&符號連接。示例,如:y&>10&<a1,或y或>10&<a1或y&>10。5)描述文件整體布局包括:區(qū)域定位信息必須與主文件一致、默認信息、關(guān)鍵字“描述”與防空一樣都不解析,描述表達式用符號“&”分割,與主文件項同位置單元格內(nèi)容對應,校驗公式,“指標”表達式還可以是“指標,指標名”的形式,指明指標名的情況,系統(tǒng)則不再取主文件的相同位置單元格文本內(nèi)容進行指標匹配。其中,描述表達式規(guī)則包括:1)描述表達式關(guān)鍵字2)規(guī)范:a)關(guān)鍵字的組合順序必須與模板主文件的對應單元格中的文字順序一致b)關(guān)鍵字之間用&符號連接,主文件相同單元格文件也需要按不同屬性用&符號分隔c)例如:指標&度量&描述其中,校驗表達式規(guī)范1)關(guān)鍵字:元素說明y、ny標識必填,n表示非必填,n可省略>、>=、<、<=比較運算符[比較對象]可以是數(shù)值,也可以是值區(qū)的單元格名,例如:>a1單位包含單位集合中單位名稱,%也做為單位2)語法:a)必填、上限子表達式、下限子表達式、單位,分別最多只能出現(xiàn)一次b)子表達式之間用&符號連接c)例如:y&>10&<a1&萬元其中,計算公式規(guī)范:計算公式支持:四則運算(加、減、乘、除)、函數(shù)、括號嵌套。實施例3:在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述讀取所述報表模板文件的區(qū)域定位信息和模板描述文件信息包括:從所述報表模板文件中讀取行列定位信息,并根據(jù)所述模板定義規(guī)則對所述行列定位信息進行判斷和分類處理;其中,首先從模板主文件中讀取定位信息,a1內(nèi)容為行頭區(qū)起始單元格名,b1為行頭區(qū)結(jié)束單元格名,c1為列頭區(qū)起始單元格名,d1為列頭區(qū)結(jié)束單元格名。校驗讀取的定位信息內(nèi)容是否符合單元格名稱規(guī)范(由字母和數(shù)字組成,字母和數(shù)字至少都要有一個字符,字母在數(shù)字前面且不能相互穿插),若不符合規(guī)范則加入錯誤提醒到錯誤列表,并結(jié)束解析返回錯誤列表。將讀取的4個單元格名稱轉(zhuǎn)換成行號和列號(行號、列號都從0開始計數(shù)),并通過行頭區(qū)、列頭區(qū)的定位信息計算得到內(nèi)容區(qū)的定位信息。通過行號、列號比較檢查定位信息是否合理,如果不合理,則加入錯誤提醒到錯誤列表,并結(jié)束解析返回錯誤列表。從所述報表模板文件中讀取所述描述文件信息,并根據(jù)所述模板定義規(guī)則對描述文件信息所述進行匹配處理。其中,從模板描述文件中讀取默認維度、默認指標、默認單位、默認度量等帶指定匹配內(nèi)容的描述表達式,如2.1.1附件模板描述文件示,單元格a3、b3、c3、d3為默認維度,e3為默認指標,f3為默認單位,g3為默認度量。分別檢查描述表達式是否符合規(guī)范,若不規(guī)范則加入錯誤列表信息,反之繼續(xù)進行匹配。匹配不成功則加入錯誤列表信息。匹配默認維度、默認單位、默認度量時,根據(jù)描述表達式的關(guān)鍵字取指定匹配內(nèi)容(可以是名稱或編碼)與相應的緩存map進行比較。匹配指標時需要查詢指標定義表(m_idx_def_info),匹配條件亦可以說指標名稱或指標編碼。實施例4:在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對所述報表模板文件的行頭列頭區(qū)信息進行加載包括:根據(jù)所述區(qū)域定位信息,對所述報表模板文件的單元格進行合并處理;根據(jù)預設的表達式和描述表達式,對所述報表模板文件的行頭區(qū)信息和列頭區(qū)信息進行匹配加載處理。其中,遍歷主頁簽模板區(qū)域所有行,保存行高數(shù)據(jù)(單位:緹twip)。遍歷主頁簽模板區(qū)域所有列,保存列寬數(shù)據(jù)(單位:緹twip)。行高、列寬數(shù)據(jù)是方便界面頁面展示,以及將來導出報表模板的時候與現(xiàn)有導入模板保持一致。其中,單元格上下層級基礎類型構(gòu)建包括:1)獲取被合并單元格:讀取單元格后,獲取單元格的合并信息,構(gòu)造excel合并域map(key為合并域的第一個單元格名,value為合并域?qū)ο?,用以后續(xù)遍歷行頭區(qū)和列頭區(qū)時構(gòu)建層級關(guān)系。通過獲取的合并域列表得到,被合并的單元格map(key為被合并的單元格名稱,value為所在合并域?qū)ο?,方便后續(xù)遍歷行頭區(qū)和列頭區(qū)時跳過不處理這些單元格。2)實例化上下層級關(guān)系:實例化上下層級關(guān)系map(key為下級單元格名,value為父層級單元格名),該緩存用以遍歷行頭區(qū)和列頭區(qū)時方便獲取父層級單元格名稱,同時緩存遍歷過程中分析出來的層級關(guān)系。其中,excel行頭區(qū)遍歷包括:行頭區(qū)單元格上下層級讀?。罕闅v行頭區(qū)所有單元格。判斷單元格是否在被合并的列表中,如果是則跳過這次處理過程進行下一個單元格的解析。讀取單元格樣式。如果當前單元格不處于行頭區(qū)的第一行,則查找它的父級單元格。如果當前單元格不處于行頭區(qū)的最后一行,且跨兩列以上,則分析查找它的下級單元格,加入上下層級關(guān)系map中。最后根據(jù)表達式和描述表達式進行匹配過程。行頭區(qū)excel單元格樣式讀?。鹤x取單元格樣式,包括是否換行(wraptext)、橫向布局(align)、縱向布局(vertical)、縮進(indent)、加粗(blod)、字體大小(size)、字體顏色(color)、單元格類型(type)、數(shù)據(jù)格式(format),組裝成json字符串。行頭區(qū)excel單元格內(nèi)容讀取:讀取行頭區(qū)單元格內(nèi)容,檢查描述表達式是否符合規(guī)范,不符合則加入錯誤列表信息。根據(jù)分隔符“&”,分別分割表達式和描述表達式為數(shù)組,判斷兩個數(shù)組長度是否一致,不一致則加入錯誤列表信息。遍歷數(shù)組,結(jié)合表達式與描述表達式匹配指標、維度、度量、指標類型。excel列頭區(qū)遍歷包括:遍歷列頭區(qū)所有單元格。判斷單元格是否在被合并的列表中,如果是則跳過這次處理過程進行下一個單元格的解析。讀取單元格樣式。如果當前單元格不處于列頭區(qū)的第一列,則查找它的父級單元格。如果當前單元格不處于行頭區(qū)的最后一列,且跨兩行以上,則分析查找它的下級單元格,加入上下層級關(guān)系map中。如果單元格表達式以一個符號“*”開頭,則分析查找它的下級單元格,加入上下層級關(guān)系map中。最后根據(jù)表達式和描述表達式進行匹配過程。實施例5:在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對所述報表模板文件的內(nèi)容區(qū)信息進行加載包括:讀取所述報表模板文件的內(nèi)容區(qū)信息,并根據(jù)預設的計算公式和校驗計算公式,對所述內(nèi)容區(qū)信息進行比對處理。其中,讀取完行頭、列頭信息后,開始內(nèi)容區(qū)域信息讀取。遍歷內(nèi)容區(qū),從主頁簽讀取計算公式,校驗檢查計算公式是否包含約定外的語法或函數(shù),如果不符合規(guī)范則加入錯誤列表信息;從描述頁簽讀取校驗表達式,檢查校驗表達式是否符合規(guī)范,否則加入錯誤列表信息。實施例6:在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述對加載后的所述報表模板文件進行保存包括:首先,定義報表模板的基礎結(jié)構(gòu),存儲整張excel的基礎信息,包括行頭,列頭起始終止信息,內(nèi)容區(qū)起始終止信息。報表頭包含的模板整體幣種,度量等信息;定義完基本區(qū)域信息后,開始分表頭(行頭,列頭)區(qū)及內(nèi)容區(qū)進行數(shù)據(jù)的保存。首先是報表模板表頭配置信息,包括表頭是否合并等等的信息;然后,存儲報表模板內(nèi)容區(qū)的結(jié)構(gòu)信息,即針對內(nèi)容區(qū)的每個單元格,存儲該單元格的行號列號,單元格上存在的公式,單元格上存在的幣種,指標,機構(gòu)等等信息;當然,還需要有一份表用于專門存儲導入出錯時所需要的出錯信息。出錯信息中包含行號,列號以及錯誤信息等。針對本申請中的數(shù)據(jù)庫設計實體,寫出對應的java類結(jié)構(gòu):報表模板配置表、報表模板表頭配置表、報表模板內(nèi)容配置表、報表導入錯誤信息。對于java數(shù)據(jù)保存包括:1、使用poi自帶excel讀取方式進行excel讀取,需要讀取模板文件及描述文件頁簽。2、讀取區(qū)域定位信息3、加載數(shù)據(jù)庫中存在的幣種,指標等信息作為緩存信息,同時讀取默認的幣種,維度,度量,單位等信息,快速進行基本信息的匹配。4、進行行頭、列頭基本信息構(gòu)建,然后遍歷行頭列頭獲取數(shù)據(jù)。5、讀取內(nèi)容區(qū)域,對內(nèi)容區(qū)的公式、指標等內(nèi)容進行校驗。這里引進了js腳本引擎,方便進行公式的正確性判斷。實現(xiàn)對上述過程的讀取,最終將所有的數(shù)據(jù)保存至oracle數(shù)據(jù)庫中。本發(fā)明通過報表的多版本管理,可實現(xiàn)多情景、不同責任主體業(yè)務和財務數(shù)據(jù)版本比對,有助于審批者看到不同層面經(jīng)營部門和管理部門的判斷差異,有利于計劃編報者看到上級部門決策與本部門編制的差異,更好地執(zhí)行上級單位的管理決策。圖2是根據(jù)本發(fā)明實施方式的一線上報表管理系統(tǒng)的架構(gòu)圖。如圖所示,所述系統(tǒng)包括:導入模塊100,用于根據(jù)預設的模板定義規(guī)則導入報表模板文件,讀取所述報表模板文件的區(qū)域定位信息和模板描述文件信息;加載模塊200,用于根據(jù)所述區(qū)域定位信息和所述模板描述文件信息,對所述報表模板文件的行頭列頭區(qū)信息和內(nèi)容區(qū)信息進行加載;保存模塊300,用于對加載后的所述報表模板文件進行保存。在本發(fā)明的另一種實施方式中,所述方法除了上述處理方式外,其中,所述預設的模板定義規(guī)則包括:報表模板的主文件定義規(guī)則、報表模板的描述文件定義規(guī)則、描述表達式規(guī)則、校驗表達式規(guī)則和計算公式規(guī)則。圖3示出了圖2所示系統(tǒng)中的導入模塊100的結(jié)構(gòu)框圖;如圖3所示,所述導入模塊100包括:導入單元110,用于根據(jù)預設的模板定義規(guī)則導入報表模板文件;行列信息單元120,用于從所述報表模板文件中讀取行列定位信息,并根據(jù)所述模板定義規(guī)則對所述行列定位信息進行判斷和分類處理;描述文件單元130,用于從所述報表模板文件中讀取所述描述文件信息,并根據(jù)所述模板定義規(guī)則對描述文件信息所述進行匹配處理。圖4示出了圖2所示系統(tǒng)中的加載模塊200的結(jié)構(gòu)框圖,如圖4所示,所述加載模塊200包括:單元格加載單元210,用于根據(jù)所述區(qū)域定位信息,對所述報表模板文件的單元格進行合并處理;根據(jù)預設的表達式和描述表達式,對所述報表模板文件的行頭區(qū)信息和列頭區(qū)信息進行匹配加載處理;以及內(nèi)容區(qū)加載單元220,用于讀取所述報表模板文件的內(nèi)容區(qū)信息,并根據(jù)預設的計算公式和校驗計算公式,對所述內(nèi)容區(qū)信息進行比對處理。需要說明的是,上述線上報表管理系統(tǒng)的各個實施方式與所述線上報表管理方法的對應技術(shù)內(nèi)容完全一致,為了避免重復,在此不再冗述。此外,本發(fā)明實施方式還提供一種線上報表管理裝置,包括存儲器和處理器,其中,所述存儲器用于存儲一條或多條供所述處理器調(diào)用執(zhí)行的計算機指令,其特征在于,所述處理器通過執(zhí)行所述計算機指令實現(xiàn)如前所述的方法(更具體而言,實現(xiàn)該方法中的各個處理、步驟或邏輯)。此外,本發(fā)明實施方式還提供一種計算機存儲介質(zhì),其特征在于,所述計算機存儲介質(zhì)存儲有程序,所述程序在執(zhí)行時實現(xiàn)如前所述的方法(更具體而言,實現(xiàn)該方法中的各個處理、步驟或邏輯)。通過以上的實施方式的描述,本領域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案對
背景技術(shù):
做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。本領域技術(shù)人員應當理解,以上所公開的僅為本發(fā)明的實施方式而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,依本發(fā)明實施方式所作的等同變化,仍屬本發(fā)明權(quán)利要求所涵蓋的范圍。當前第1頁12