一種基于Excel批注的報(bào)表生成方法
【專利摘要】本發(fā)明涉及一種基于Excel批注的報(bào)表生成方法,該方法包括下列步驟:定義腳本格式,生成數(shù)據(jù)字典和解析程序;生成Excel報(bào)表文件;Excel報(bào)表文件的單元格是否需要自動(dòng)填充,若是,則根據(jù)數(shù)據(jù)字典添加Excel單元格批注,綁定數(shù)據(jù)庫(kù)內(nèi)容;若否,則直接添加Excel單元格批注,描述報(bào)表的基本信息;利用解析程序調(diào)用報(bào)表文件,形成結(jié)果報(bào)表。與現(xiàn)有技術(shù)相比,本發(fā)明具有適用性廣、制作簡(jiǎn)單、更改方便、軟件維護(hù)簡(jiǎn)單以及對(duì)專業(yè)要求低等優(yōu)點(diǎn)。
【專利說(shuō)明】
_種基于Exce I批注的報(bào)表生成方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種報(bào)表生成方法,尤其是涉及一種基于Excel批注的報(bào)表生成方法。
【背景技術(shù)】
[0002] 報(bào)表就是用表格、圖表等格式來(lái)動(dòng)態(tài)顯示數(shù)據(jù),當(dāng)計(jì)算機(jī)出現(xiàn)之后,人們利用計(jì)算 機(jī)處理數(shù)據(jù)和界面設(shè)計(jì)的功能來(lái)生成、展示報(bào)表。計(jì)算機(jī)上的報(bào)表的主要特點(diǎn)是數(shù)據(jù)動(dòng)態(tài) 化,格式多樣化,并且實(shí)現(xiàn)報(bào)表數(shù)據(jù)和報(bào)表格式的完全分離,用戶可以只修改數(shù)據(jù),或者只 修改格式。報(bào)表分類EXCEL、WORD等編輯軟件:它們可以做出很復(fù)雜的報(bào)表格式,但是由于它 們沒(méi)有定義專門的報(bào)表結(jié)構(gòu)來(lái)動(dòng)態(tài)的加載報(bào)表數(shù)據(jù),所有這類軟件中的數(shù)據(jù)都是已經(jīng)定義 好的,靜態(tài)的,不能動(dòng)態(tài)變化的。它們沒(méi)有辦法實(shí)現(xiàn)報(bào)表軟件的"數(shù)據(jù)動(dòng)態(tài)化"特性。數(shù)據(jù)庫(kù) 軟件:它們可以擁有動(dòng)態(tài)變化的數(shù)據(jù),但是這類軟件一般只會(huì)提供,最簡(jiǎn)單的表格形式來(lái)顯 示數(shù)據(jù)。它們沒(méi)有實(shí)現(xiàn)報(bào)表軟件的"格式多樣化"的特性。報(bào)表軟件,它們需要有專門的報(bào)表 結(jié)構(gòu)來(lái)動(dòng)態(tài)的加載數(shù)據(jù),同時(shí)也能夠?qū)崿F(xiàn)報(bào)表格式的多樣化。
[0003] 軟件設(shè)計(jì)中,把到數(shù)據(jù)庫(kù)中的記錄輸出到報(bào)表進(jìn)行打印,有多種工具和方法。一般 性的報(bào)表,輸出重復(fù)性的數(shù)據(jù),若沒(méi)有格式要求,制作就比較簡(jiǎn)單;有些報(bào)表,比如計(jì)量器具 的證書和測(cè)試報(bào)告,具有規(guī)定的格式,需要把各種數(shù)據(jù)輸出到報(bào)表特定的位置上,這樣的報(bào) 表不是一般人能制作的,需要較強(qiáng)的專業(yè)知識(shí),甚至需要編寫很長(zhǎng)的代碼。對(duì)于開發(fā)人員, 給眾多的客戶制定五花八門的報(bào)表往往是一件很繁瑣的事,因?yàn)槟壳埃谱鲌?bào)表還是一項(xiàng) 專業(yè)的工作,普通的用戶無(wú)法自己制作。目前,缺乏一種采用一般人熟悉的辦公軟件制作出 專業(yè)報(bào)表的簡(jiǎn)單有效的方法。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是針對(duì)上述問(wèn)題提供一種基于Excel批注的報(bào)表生成方法。
[0005] 本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
[0006] -種基于Excel批注的報(bào)表生成方法,該方法包括下列步驟:
[0007] (1)定義腳本格式,生成數(shù)據(jù)字典和解析程序;
[0008] (2)生成Excel報(bào)表文件;
[0009] (3)判斷(2)中的Excel報(bào)表文件的單元格是否需要自動(dòng)填充,若是,則根據(jù)(1)中 的數(shù)據(jù)字典添加Excel單元格批注,綁定數(shù)據(jù)庫(kù)內(nèi)容;若否,則直接添加Excel單元格批注, 描述報(bào)表的基本信息;
[0010] (4)利用(1)中生成的解析程序調(diào)用(3)中生成的報(bào)表文件,形成結(jié)果報(bào)表。
[0011] 所述腳本格式包括報(bào)表類型、自動(dòng)數(shù)據(jù)的排列方式、報(bào)表的區(qū)域、對(duì)應(yīng)的數(shù)據(jù)表和 數(shù)據(jù)字段、關(guān)聯(lián)的條件、空數(shù)據(jù)的默認(rèn)格式、數(shù)據(jù)的單位以及數(shù)據(jù)的轉(zhuǎn)換方式。
[0012] 所述報(bào)表類型包括證書、通知書、測(cè)試報(bào)告以及清單。
[0013] 所述數(shù)據(jù)字典為生成報(bào)表的數(shù)據(jù)庫(kù)的定義。
[0014] 所述解析程序?yàn)榻馕鯡xcel單元格批注的程序。
[0015]所述步驟(4)具體為:
[0016] (41)獲取經(jīng)步驟(3)處理后的Excel報(bào)表文件;
[0017] (42)復(fù)制所述Excel報(bào)表文件的Sheet,創(chuàng)建一個(gè)新Sheet;
[0018] (43)獲取步驟(43)中新Sheet的所有批注內(nèi)容,記錄每個(gè)批注的單元格;
[0019] (44)解析(43)中的批注,得到報(bào)表類型及每個(gè)批注對(duì)應(yīng)的信息;
[0020] (45)根據(jù)(44)中解析的批注得到的信息,查詢數(shù)據(jù)字典獲得對(duì)應(yīng)的數(shù)據(jù);
[0021] (46)根據(jù)(44)中得到的報(bào)表類型,對(duì)報(bào)表類型為清單的新Sheet,統(tǒng)計(jì)重復(fù)性數(shù)據(jù) 所對(duì)應(yīng)的單元格;
[0022] (47)將(45)和(46)中得到的數(shù)據(jù)寫入新Sheet對(duì)應(yīng)的單元格,形成最終報(bào)表。
[0023] 所述數(shù)據(jù)庫(kù)為包含需要輸出內(nèi)容的關(guān)系型數(shù)據(jù)庫(kù)。
[0024] 所述Excel報(bào)表文件具體為基于Excel的特定格式的空白報(bào)表文件。
[0025] 所述Excel單元格批注具體為根據(jù)腳本定義編寫的批注。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0027] 1)報(bào)表的制作時(shí)基于Excel軟件來(lái)實(shí)現(xiàn)的,可以制作多種類型的報(bào)表;
[0028] 2)在Excel單元格批注中編寫簡(jiǎn)單的腳本來(lái)關(guān)聯(lián)報(bào)表內(nèi)容與數(shù)據(jù)庫(kù)記錄,同時(shí)解 析批注中的腳本可以輸出報(bào)表,實(shí)現(xiàn)了數(shù)據(jù)的動(dòng)態(tài)化;
[0029] 3)報(bào)表的制作是開放式的,在提供數(shù)據(jù)字典和解析程序的情況下,普通用戶可以 利用Excel軟件對(duì)報(bào)表進(jìn)行制作和修改,不用依賴專業(yè)的報(bào)表工具軟件和軟件開發(fā)人員,降 低了專業(yè)要求;
[0030] 4)本發(fā)明中腳本的定義與具體的數(shù)據(jù)庫(kù)無(wú)關(guān),可應(yīng)用于任意關(guān)系型數(shù)據(jù)庫(kù),適用 性廣;
[0031] 5)解析程序只用于將腳本與數(shù)據(jù)庫(kù)進(jìn)行對(duì)應(yīng),因此針對(duì)相同的數(shù)據(jù)庫(kù),無(wú)需更改 解析程序來(lái)制作不同報(bào)表,針對(duì)不同的數(shù)據(jù)庫(kù),解析程序只需進(jìn)行簡(jiǎn)單的更改,更改簡(jiǎn)單, 操作方便。
【附圖說(shuō)明】
[0032]圖1為本發(fā)明的方法流程圖;
[0033] 圖2為解析程序處理流程圖。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例以本發(fā)明技術(shù)方案 為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于 下述的實(shí)施例。
[0035] 如圖1所示,本發(fā)明提供了一種基于Excel批注的報(bào)表生成方法,該方法包括:
[0036] 在步驟si中,定義腳本格式,生成數(shù)據(jù)字典和解析程序。
[0037] 所述腳本格式包括報(bào)表類型、自動(dòng)數(shù)據(jù)的排列方式、報(bào)表的區(qū)域、對(duì)應(yīng)的數(shù)據(jù)表和 數(shù)據(jù)字段、關(guān)聯(lián)的條件、空數(shù)據(jù)的默認(rèn)格式、數(shù)據(jù)的單位以及數(shù)據(jù)的轉(zhuǎn)換方式;所述報(bào)表類 型包括證書、通知書、測(cè)試報(bào)告以及清單。所述數(shù)據(jù)字典為生成報(bào)表的數(shù)據(jù)庫(kù)的定義,所述 數(shù)據(jù)庫(kù)為包含需要輸出內(nèi)容的關(guān)系型數(shù)據(jù)庫(kù)。所述解析程序?yàn)榻馕鯡xcel單元格批注的程 序。
[0038] 在步驟s2中,生成Excel報(bào)表文件,該Excel報(bào)表文件具體為基于Excel的特定格式 的空白報(bào)表文件。
[0039] 在步驟s3中,判斷步驟s2中的Excel報(bào)表文件的單元格是否需要自動(dòng)填充,若是, 則根據(jù)步驟s 1中的數(shù)據(jù)字典添加Excel單元格批注,綁定數(shù)據(jù)庫(kù)內(nèi)容;若否,則直接添加 Excel單元格批注,描述報(bào)表的基本信息。所述Excel單元格批注具體為根據(jù)腳本定義編寫 的批注。
[0040] 在步驟s4中,利用步驟si中生成的解析程序調(diào)用步驟S3中生成的報(bào)表文件,形成 結(jié)果報(bào)表,結(jié)果報(bào)表具體為最終形成的基于Excel批注的報(bào)表。
[0041] 如圖2所示,所述解析Excel單元格批注的具體步驟為:
[0042] 在步驟s41中,打開經(jīng)步驟s3處理后的Excel報(bào)表文件;
[0043] 在步驟s42中,復(fù)制報(bào)表文件的Sheet,創(chuàng)建一個(gè)新的Sheet;
[0044] 在步驟s43中,獲取步驟s43中新Sheet的所有批注內(nèi)容,記錄每個(gè)批注的單元格;
[0045] 在步驟s44中,解析步驟s43中的批注,得到報(bào)表類型及每個(gè)批注對(duì)應(yīng)的信息;
[0046] 在步驟s45中,根據(jù)步驟s44中解析的批注得到的信息,查詢數(shù)據(jù)庫(kù)獲得對(duì)應(yīng)的數(shù) 據(jù);
[0047] 在步驟s46中,根據(jù)步驟s44中得到的報(bào)表類型,對(duì)清單類型,統(tǒng)計(jì)重復(fù)性數(shù)據(jù)所對(duì) 應(yīng)的單元格;
[0048] 在步驟s47中,將步驟s45和s46中得到的數(shù)據(jù)寫入Sheet對(duì)應(yīng)的單元格,形成最終 報(bào)表。
[0049] 本發(fā)明使用時(shí),開發(fā)者需要根據(jù)數(shù)據(jù)庫(kù)提供一份數(shù)據(jù)字典,并且根據(jù)具體的數(shù)據(jù) 庫(kù)編寫解析程序。報(bào)表設(shè)計(jì)人員可以是使用人員通過(guò)微軟Excel辦公軟件,按格式要求制作 一個(gè)空白的Excel報(bào)表文件;在一個(gè)不需要自動(dòng)填充數(shù)據(jù)的單元格內(nèi),添加一項(xiàng)符合腳本定 義格式的批注,用于描述報(bào)表格式等基本信息;在需要自動(dòng)填充數(shù)據(jù)的單元格內(nèi),根據(jù)數(shù)據(jù) 字典添加符合腳本定義格式的批注,用于綁定數(shù)據(jù)庫(kù)內(nèi)容;解析程序調(diào)用Excel報(bào)表文件, 解析批注內(nèi)容,查詢數(shù)據(jù)庫(kù)并輸出數(shù)據(jù),形成目的報(bào)表。
[0050] 有關(guān)腳本定義,其具體定義方式可見表1。
[0051] 表1:腳本定義欄目
[0055]以下兩個(gè)實(shí)例,是根據(jù)本發(fā)明制作和打印的兩份報(bào)表:
[0056]實(shí)例1:電能表檢定原始紀(jì)錄
[0057] -份空白報(bào)表,定義報(bào)表類型的批注,一份報(bào)表僅此一項(xiàng),S = F表不本批注為報(bào)表 類型定義,了7口6 = 1^口01'1:表示為報(bào)告類型,〇6£3111丨=/表示空白數(shù)據(jù)填寫"/",1'(^1?0¥=1表 示報(bào)表從第1行開始,BottomRow = 38表示報(bào)表至第38行結(jié)束;定義表頭內(nèi)容的批注,一份報(bào) 表可以有多項(xiàng),S = H表示表頭區(qū)域,T = PM_Meters及F = SerialNo表示該單元格需要填充數(shù) 據(jù)表PM_Meters的SerialNo字段的內(nèi)容;定義明細(xì)數(shù)據(jù)的批注,一份報(bào)表一般有多項(xiàng),S = D 表示明細(xì)區(qū)域,T = PM_Error及F = Error 1表示該單元格需要填充數(shù)據(jù)表PM_Error的Error 1 字段的內(nèi)容,M=Imax 1.0表示需要符合條件關(guān)鍵字為Imax 1.0,最后生成新的報(bào)表。
[0058] 實(shí)例2:電能表檢定紀(jì)錄清單
[0059] -份清單格式的報(bào)表,定義報(bào)表類型的批注,一份報(bào)表僅此一項(xiàng),S = Define表示 本批注為報(bào)表類型定義,TopRow=l表示報(bào)表從第1行開始,BottomRow = 30表示報(bào)表至第30 行結(jié)束,Type = List表示本報(bào)表類型為清單格式,Max = 20表示每頁(yè)上最多輸出20條紀(jì)錄, 0rientation = H表示記錄按行排列;定義報(bào)表明細(xì)數(shù)據(jù)的批注,S = Detail表示明細(xì)區(qū)域,T = PM_Meters及F = SerialNo表;^本單元格填充PM_Meters數(shù)據(jù)表SerialNo字段的內(nèi)容,N = 1-10表示本區(qū)域輸出第1至第10條記錄,最后生成新的報(bào)表。
【主權(quán)項(xiàng)】
1. 一種基于Excel批注的報(bào)表生成方法,其特征在于,該方法包括下列步驟: (1) 定義腳本格式,生成數(shù)據(jù)字典和解析程序; (2) 生成Excel報(bào)表文件; (3) 判斷(2)中的Excel報(bào)表文件的單元格是否需要自動(dòng)填充,若是,則根據(jù)(1)中的數(shù) 據(jù)字典添加 Excel單元格批注,綁定數(shù)據(jù)庫(kù)內(nèi)容;若否,則直接添加 Excel單元格批注,描述 報(bào)表的基本信息; (4) 利用(1)中生成的解析程序調(diào)用(3)中生成的報(bào)表文件,形成結(jié)果報(bào)表。2. 根據(jù)權(quán)利要求1所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述腳本格式 包括報(bào)表類型、自動(dòng)數(shù)據(jù)的排列方式、報(bào)表的區(qū)域、對(duì)應(yīng)的數(shù)據(jù)表和數(shù)據(jù)字段、關(guān)聯(lián)的條件、 空數(shù)據(jù)的默認(rèn)格式、數(shù)據(jù)的單位以及數(shù)據(jù)的轉(zhuǎn)換方式。3. 根據(jù)權(quán)利要求2所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述報(bào)表類型 包括證書、通知書、測(cè)試報(bào)告以及清單。4. 根據(jù)權(quán)利要求1所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述數(shù)據(jù)字典 為生成報(bào)表的數(shù)據(jù)庫(kù)的定義。5. 根據(jù)權(quán)利要求1所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述解析程序 為解析Exce 1單元格批注的程序。6. 根據(jù)權(quán)利要求3所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述步驟(4)具 體為: (41) 獲取經(jīng)步驟(3)處理后的Excel報(bào)表文件; (42) 復(fù)制所述Excel報(bào)表文件的Sheet,創(chuàng)建一個(gè)新Sheet; (43) 獲取步驟(43)中新Sheet的所有批注內(nèi)容,記錄每個(gè)批注的單元格; (44) 解析(43)中的批注,得到報(bào)表類型及每個(gè)批注對(duì)應(yīng)的信息; (45) 根據(jù)(44)中解析的批注得到的信息,查詢數(shù)據(jù)字典獲得對(duì)應(yīng)的數(shù)據(jù); (46) 根據(jù)(44)中得到的報(bào)表類型,對(duì)報(bào)表類型為清單的新Sheet,統(tǒng)計(jì)重復(fù)性數(shù)據(jù)所對(duì) 應(yīng)的單元格; (47) 將(45)和(46)中得到的數(shù)據(jù)寫入新Sheet對(duì)應(yīng)的單元格,形成最終報(bào)表。7. 根據(jù)權(quán)利要求4所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述數(shù)據(jù)庫(kù)為 包含需要輸出內(nèi)容的關(guān)系型數(shù)據(jù)庫(kù)。8. 根據(jù)權(quán)利要求1所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述Excel報(bào)表 文件具體為基于Excel的特定格式的空白報(bào)表文件。9. 根據(jù)權(quán)利要求1所述的基于Excel批注的報(bào)表生成方法,其特征在于,所述Excel單元 格批注具體為根據(jù)腳本定義編寫的批注。
【文檔編號(hào)】G06F9/44GK105893053SQ201610250773
【公開日】2016年8月24日
【申請(qǐng)日】2016年4月21日
【發(fā)明人】王新剛, 朱錚, 朱彬若, 張垠, 江劍峰, 翁素婷, 顧臻, 陳金濤, 吳穎, 盛青
【申請(qǐng)人】國(guó)網(wǎng)上海市電力公司, 華東電力試驗(yàn)研究院有限公司