專利名稱:用關(guān)系型數(shù)據(jù)庫存儲電子表格單元格內(nèi)容的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用關(guān)系型數(shù)據(jù)庫存儲電子表格單元格信息的方法。
背景技術(shù):
電子表格定義電子表格為一類文件的總稱,由電子表格軟件創(chuàng)建,俗稱“工作簿”。一個“工作簿”由若干工作表組成,每個工作表由若干行、列組成,每行和每列的交叉構(gòu)成一個單元格,該單元格可用其所在的行號和列號(又稱單元地址)來標(biāo)識。單元格中可以存儲數(shù)字、文字、日期、圖像、鏈接、對象等信息,亦可存儲計算公式。連續(xù)的單元格可合并。
關(guān)系型數(shù)據(jù)庫定義關(guān)系型數(shù)據(jù)庫是結(jié)構(gòu)化的數(shù)據(jù)集合,由數(shù)據(jù)表組成,數(shù)據(jù)表之間可存在各種關(guān)系。數(shù)據(jù)表由字段組成。關(guān)系型數(shù)據(jù)庫遵循關(guān)系理論。
電子表格軟件以美國微軟公司的Excel、美國蓮花公司的Lotus、金山公司的WPS表格為代表。電子表格由于其直觀、易用,深受大眾歡迎。但是,電子表格主要用于個人計算,目前,電子表格的網(wǎng)絡(luò)化應(yīng)用,還停留在文件共享層次上,還遠(yuǎn)遠(yuǎn)不能滿足人們對數(shù)據(jù)共享、協(xié)同的需要。隨著信息化的深入,信息共享,基于數(shù)據(jù)的網(wǎng)絡(luò)電子表格共享已成為一種強(qiáng)烈的需求。
電子表格實(shí)現(xiàn)數(shù)據(jù)網(wǎng)絡(luò)化應(yīng)用的基礎(chǔ)是電子表格的數(shù)據(jù)如何有意義、有效地存儲于關(guān)系型數(shù)據(jù)庫中。有意義是指數(shù)據(jù)可以引用。有效是指能夠被管理。
微軟公司在Excel和MS SQL Server2000之間提供了一個以Excel文件的工作表為一個數(shù)據(jù)表的資料存儲方法,該工作表上的列對應(yīng)為數(shù)據(jù)庫表中的字段,行對應(yīng)成為表中的記錄。問題是這種對應(yīng)方法沒有獲得和記錄電子表格單元格信息的意義,只機(jī)械地記錄了位置信息,對進(jìn)一步實(shí)現(xiàn)數(shù)據(jù)及資料的共享和引用缺乏支持。參見“如何將Excel數(shù)據(jù)導(dǎo)入SQL Server”http//support.microsoft.com/default.aspx?scid=kb;zh-cn;32168
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種對電子表格單元格的內(nèi)容賦予意義,并存儲到關(guān)系數(shù)據(jù)庫中的方法。
本發(fā)明的技術(shù)解決方案由以下幾個部分的內(nèi)容組成1.將電子表格單元格組合為關(guān)系數(shù)據(jù)庫表的組合模式2.組合模式的具體描述,也即電子表格上的數(shù)據(jù)表定義。
3.存儲電子表格上的數(shù)據(jù)表定義,以備重復(fù)利用4.為用戶提供一種可直觀理解的接口操作方式,輸入數(shù)據(jù)表定義。
5.已輸入并已存儲的數(shù)據(jù)表定義,如何被利用,以達(dá)到真正地將電子表格單元格中的內(nèi)容存儲到關(guān)系數(shù)據(jù)庫中的目的。
以下分別說明。
(一)電子表格組合為關(guān)系數(shù)據(jù)庫表的組合模式電子表格單元格可按以下四種模式之一,組合為關(guān)系型數(shù)據(jù)庫的表1.單一數(shù)據(jù)項組合模式若干單元格組成一個表,每個單元格(或合并的單元格)為一個字段,其內(nèi)容形成該表中的一條記錄。
附圖1示例單一數(shù)據(jù)項組合模式。
2.按行重復(fù)數(shù)據(jù)項組合模式若干行號范圍相同,且縱向連續(xù)的單元格區(qū)域組成一個表,每個縱向連續(xù)的區(qū)域?qū)?yīng)表中一個字段,在它們共同的行號范圍內(nèi),每行的內(nèi)容形成表中一條記錄。
例如A2A10,B2B10,D2D10,為三個行號范圍相同(都是從2到10)且縱向連續(xù)的單元區(qū)域,它們組成一個數(shù)據(jù)表,有三個字段,假設(shè)是“姓名”、“性別”、“年齡”,則A2,B2,D2的內(nèi)容為第一條記錄的“姓名”、“性別”和年齡;A3,B3,D3的內(nèi)容為第二條記錄的“姓名”、“性別”和“年齡”,依此類推。在此例中,A2A10區(qū)域包含9個單元格,但它們的內(nèi)容的含義都是“姓名”,故稱“按行重復(fù)”3.按列重復(fù)數(shù)據(jù)項組合模式若干列號范圍相同,且橫向連續(xù)的單元格區(qū)域組成一個表,每個橫向連續(xù)的區(qū)域?qū)?yīng)表中的一個字段,在它們共同的列號范圍內(nèi),每列的內(nèi)容形成表中一個記錄。
4.交叉表模式由連續(xù)的單元格組成的矩形區(qū)域組成一個表,這個連續(xù)的區(qū)域至少有兩行,至少有兩列。該區(qū)域的上方若干行中的每一行對應(yīng)表中的一個字段,稱為“列標(biāo)字段”;該區(qū)域的左側(cè)若干列中的每一列對應(yīng)表中的一個字段,稱為“行標(biāo)字段”;該區(qū)域的右下角剩余部分對應(yīng)表中的一個字段,而不論其中有多少個單元格,稱為“數(shù)據(jù)域位”。
在同一個電子表格上,可同時存在多種組合模式。
附圖1為在同一個電子表格上綜合了單一數(shù)據(jù)項組合模式。附圖2為單一數(shù)據(jù)項組合模式,按行重復(fù)數(shù)據(jù)項組合模式,交叉表模式的示例。附圖3為按列重復(fù)數(shù)據(jù)項組合模式的示例。
(二)數(shù)據(jù)表定義將單元格組合為關(guān)系型數(shù)據(jù)庫表的組合模式形式化地描述出來,即為數(shù)據(jù)表定義。需要描述的內(nèi)容包括表名該表的組合模式對表中的每個字段,分別描述字段名稱數(shù)據(jù)類型該字段所對應(yīng)的單元格或單元區(qū)域在電子表格上的位置信息,包括所在的工作表,所在的行號或行號范圍,所在的列號或列號范圍如果該表的單元格組合模式為“交叉表模式”,還要描述每個字段是“列標(biāo)字段”、“行標(biāo)字段”,還是“數(shù)據(jù)字段”。
在附圖1、附圖2、和附圖3的說明中,分別對各種組合模式的數(shù)據(jù)表定義描述做了例示。
(三)數(shù)據(jù)表定義的存儲數(shù)據(jù)表定義需要以一種方式存儲起來,以備重復(fù)利用,存儲方式可有多種,如可存儲為關(guān)系型數(shù)據(jù)庫中的表,存儲為xml(可擴(kuò)展標(biāo)注語言)文檔,存儲為普通文本文檔等。
僅以存儲到關(guān)系型數(shù)據(jù)庫表為例,對(二)所述內(nèi)容進(jìn)行規(guī)范化,使之符合數(shù)據(jù)庫第三范式,可設(shè)計四個表描述(二)所述內(nèi)容。
附圖4為說明這四個表之間關(guān)系的實(shí)體關(guān)系圖。
(四)輸入數(shù)據(jù)表定義的用戶操作方式及界面設(shè)計用戶選擇要定義為數(shù)據(jù)表字段的單元格或單元區(qū)域(可多選),然后通過向?qū)浇缑?,輸入?二)所述的數(shù)據(jù)表定義信息,包括數(shù)據(jù)表名稱,每個字段的屬性等,根據(jù)輸入的信息構(gòu)造用于創(chuàng)建數(shù)據(jù)庫表的sql(結(jié)構(gòu)化查詢語言)語句,在數(shù)據(jù)庫中實(shí)際完成表的創(chuàng)建。附圖5,6,7,8為單一數(shù)據(jù)項定義過程界面。圖9,10,11為重復(fù)數(shù)據(jù)項、交叉表數(shù)據(jù)項用戶定義操作界面設(shè)計;附圖12為實(shí)現(xiàn)方法的流程圖。
(五)利用已存在的數(shù)據(jù)表定義,將電子表格單元格內(nèi)容存儲到關(guān)系型數(shù)據(jù)庫根據(jù)指定的電子表格文件,此處稱為模版文件,定義了數(shù)據(jù)表之后,用戶可指定其它電子表格文件為“模版”的“實(shí)例”,使得“實(shí)例”文件的內(nèi)容按照模版文件上的數(shù)據(jù)表定義存儲到數(shù)據(jù)庫中去。也即,針對一個電子表格文件定義關(guān)系型數(shù)據(jù)庫表,可使得一類電子表格文件的單元格內(nèi)容被存儲到該表中去。此處“模版”與“實(shí)例”的關(guān)系可理解為“空表格”與“填寫了內(nèi)容的表格”之間的關(guān)系。
附圖13,14,15,16例示了“模版”文件與“實(shí)例”文件的關(guān)系。
附圖17描述了將“實(shí)例”文件內(nèi)容存儲到數(shù)據(jù)庫中去的實(shí)現(xiàn)流程圖。
四
圖1示例了單一數(shù)據(jù)項組合模式。
圖2示例了三種不同的組合模式。
圖3示例了按列重復(fù)數(shù)據(jù)項組合模式。
圖4示例了用于存儲數(shù)據(jù)表定義的四個表的實(shí)體關(guān)系圖(ER圖)。
圖5,6,7,8示例定義單一數(shù)據(jù)項的向?qū)接脩舨僮鹘缑妗?br>
圖9,10,11示例定義按行或按列重復(fù)數(shù)據(jù)項或交叉表的向?qū)接脩舨僮鹘缑妗?br>
圖12示例在電子表格上定義數(shù)據(jù)表的處理流程圖。
圖13,14,15,16示例了模版與示例的關(guān)系。
圖17示例了根據(jù)數(shù)據(jù)表定義提取電子表格單元格內(nèi)容,并存儲到數(shù)據(jù)庫的處理流程圖。
五具體實(shí)施例方式
(一)單一數(shù)據(jù)項組合模式附圖1示例了單一數(shù)據(jù)項組合模式。圖中B2,D2,F(xiàn)2,B3D3,F(xiàn)3,B4,D4,F(xiàn)4組成一個數(shù)據(jù)表,定義如下表名員工登記表組合模式單一數(shù)據(jù)項字段說明
(二)單一數(shù)據(jù)項模式,按行重復(fù)模式,交叉表模式附圖2示例了三種不同的組合模式在此例中,sheet2上的C2、E2、G2組合成一個單一數(shù)據(jù)項組合模式的表;B4H7組合成一個按行重復(fù)數(shù)據(jù)項組合模式的表;B10G14組合成一個交叉表模式的表;它們各自的數(shù)據(jù)表定義如下表名銷售月報_主表組合模式單一數(shù)據(jù)項字段說明
表名銷售月報_類別明細(xì)組合模式按行重復(fù)數(shù)據(jù)項,可向下擴(kuò)展字段說明
表名銷售月報_地區(qū)明細(xì)組合模式交叉表,可向下、向右擴(kuò)展字段說明
(三)按列重復(fù)模式附圖3示例了按列重復(fù)數(shù)據(jù)項組合模式。圖中C4M5區(qū)域內(nèi)的單元格組成一個表,數(shù)據(jù)表定義如下表名原料分析報告_明細(xì)組合模式按列重復(fù)數(shù)據(jù)項字段說明
(四)用數(shù)據(jù)庫表存儲數(shù)據(jù)表定義附圖4示例用于存儲數(shù)據(jù)表定義的四個表的實(shí)體關(guān)系圖(ER圖)(五)定義單一數(shù)據(jù)項用戶操作界面附圖5,6,7,8示例定義單一數(shù)據(jù)項的向?qū)接脩舨僮鹘缑妗?br>
(六)定義重復(fù)數(shù)據(jù)項或交叉表用戶操作接口附圖9,10,11示例定義按行或按列重復(fù)數(shù)據(jù)項或交叉表的向?qū)接脩舨僮鹘缑妗?br>
(七)在電子表格上定義數(shù)據(jù)表的處理流程如附圖12所示為在電子表格上定義數(shù)據(jù)表的處理流程。
(八)模版與實(shí)例的關(guān)系如附圖13,14,15,16為模版與實(shí)例的關(guān)系。
(九)根據(jù)數(shù)據(jù)表定義提取電子表格單元格內(nèi)容,并存儲到數(shù)據(jù)庫的處理流程圖附圖17為根據(jù)數(shù)據(jù)表定義提取電子表格單元格內(nèi)容,并存儲到數(shù)據(jù)庫的處理流程圖。
權(quán)利要求
1.用關(guān)系型數(shù)據(jù)庫存儲電子表格單元格內(nèi)容的方法,其特征是針對電子表格定義一個或多個關(guān)系型數(shù)據(jù)庫表,使得電子表格單元格的內(nèi)容存儲到關(guān)系型數(shù)據(jù)庫的表中。關(guān)系型數(shù)據(jù)庫表的字段定義體現(xiàn)了單元格內(nèi)容的含義。此處所述電子表格為一類文件,俗稱“工作簿”文件,一個工作簿可由若干工作表組成,每個工作表是一個二維的表格,有若干行、若干列,每行與每列的交叉構(gòu)成一個單元格,每個單元格中可包含內(nèi)容(數(shù)字、文字、日期、圖像、鏈接、對象等)。幾個連續(xù)的單元格可以合并。
2.由權(quán)利要求1所述的“用關(guān)系型數(shù)據(jù)庫存儲電子表格單元格內(nèi)容的方法”,其特征是一個電子表格文件上的所有單元格能夠按以下模式組合成一個或多個關(guān)系型數(shù)據(jù)庫表。其內(nèi)容形成表中記錄a)單一數(shù)據(jù)項組合模式若干單元格組成一個關(guān)系數(shù)據(jù)庫表,每個單元格(或合并的單元格)為一個字段,其內(nèi)容形成該表中的一條記錄。b)按行重復(fù)數(shù)據(jù)項組合模式若干行號范圍相同,且縱向連續(xù)的單元格區(qū)域組成一個關(guān)系數(shù)據(jù)庫表,每個縱向連續(xù)的區(qū)域?qū)?yīng)該表中一個字段,在它們共同的行號范圍內(nèi),每行的內(nèi)容形成該表中一條記錄。為便于理解,特舉例A2:A10,B2:B10,D2:D10,為三個行號范圍相同(都是從2到10)且縱向連續(xù)的單元區(qū)域,它們組成一個關(guān)系數(shù)據(jù)庫數(shù)據(jù)表,有三個字段,假設(shè)是“姓名”、“性別”、“年齡”,則A2,B2,D2的內(nèi)容為第一條記錄的“姓名”、“性別”和年齡;A3,B3,D3的內(nèi)容為第二條記錄的“姓名”、“性別”和“年齡”,依此類推。在此例中,A2:A10區(qū)域包含9個單元格,但它們的內(nèi)容的含義都是“姓名”,故稱“按行重復(fù)”。c)按列重復(fù)數(shù)據(jù)項組合模式若干列號范圍相同,且橫向連續(xù)的單元格區(qū)域組成一個關(guān)系數(shù)據(jù)庫表,每個橫向連續(xù)的區(qū)域?qū)?yīng)該表中的一個字段,在它們共同的列號范圍內(nèi),每列的內(nèi)容形成該表中一個記錄。d)交叉表模式由連續(xù)的單元格組成的矩形區(qū)域組成一個關(guān)系數(shù)據(jù)庫表,這個連續(xù)的區(qū)域至少有兩行,至少有兩列。該區(qū)域的上方若干行中的每一行對應(yīng)該表中的一個字段,稱為“列標(biāo)字段”;該區(qū)域的左側(cè)若干列中的每一列對應(yīng)該表中的一個字段,稱為“行標(biāo)字段”;該區(qū)域的右下角剩余部分對應(yīng)該表中的一個字段,而不論其中有多少個單元格,稱為“數(shù)據(jù)字段”。f)在同一個電子表格上,可同時存在多種組合模式。
3.由權(quán)利要求1、2所述的“用關(guān)系型數(shù)據(jù)庫表存儲電子表格單元格內(nèi)容的方法”,其特征是,明確描述單元格如何組合成關(guān)系數(shù)據(jù)庫表的具體方法,這種描述稱為“數(shù)據(jù)表定義”,其內(nèi)容包括a)表的名稱b)該表對應(yīng)的單元格組合模式,為2所述的四種模式之一。c)該表包含哪些字段,對每一個字段,都要描述i.字段名稱ii.字段的數(shù)據(jù)類型iii.該字段所對應(yīng)的單元格或單元區(qū)域在電子表格上的位置信息,包括所在的工作表,所在的行號或行號范圍,所在的列號或列號范圍iv.如果該表的單元格組合模式為“交叉表模式”,還要描述每個字段是“列標(biāo)字段”、“行標(biāo)字段”,還是“數(shù)據(jù)字段”。
4.由權(quán)利要求1所述的“用關(guān)系型數(shù)據(jù)庫表存儲電子表格單元格內(nèi)容的方法”,其特征是以一種方式靜態(tài)永久存儲電子表格單元格如何對應(yīng)為數(shù)據(jù)庫表的字段,并組合成關(guān)系型數(shù)據(jù)庫表的方法。這種存儲方式可以體現(xiàn)為關(guān)系型數(shù)據(jù)庫中的表,xml文檔,文本文件等多種形式。
5.由權(quán)利要求3所述的“用關(guān)系型數(shù)據(jù)庫表存儲電子表格單元格內(nèi)容的方法”,其特征是以一種用戶可直觀理解的方式,通過界面操作,方便地定義電子表格單元格如何組合成數(shù)據(jù)庫表,表中字段的定義,以及單元格與表中字段的對應(yīng)關(guān)系。
6.由權(quán)利要求1、2、3所述的“用關(guān)系型數(shù)據(jù)庫表存儲電子表格單元格內(nèi)容的方法”,其特征是把某個電子表格文件作為“模版”,針對“模版”按照上述3定義了單元格如何組成數(shù)據(jù)表,及單元格與字段的對應(yīng)關(guān)系后,用戶可指定其它電子表格文件為“模版”的“實(shí)例”,使得“實(shí)例”文件的內(nèi)容按照模版文件上的數(shù)據(jù)表定義存儲到數(shù)據(jù)表中去。也即,針對一個電子表格文件定義關(guān)系型數(shù)據(jù)庫表,可使得一類電子表格文件的單元格內(nèi)容被存儲到該表中去。此處“模版”與“實(shí)例”的關(guān)系可理解為“空表格”與“填寫了內(nèi)容的表格”之間的關(guān)系。
全文摘要
用關(guān)系型數(shù)據(jù)庫存儲電子表格單元格信息方法的發(fā)明,目的在于提供一種對電子表格單元格的內(nèi)容賦予意義,并存儲到關(guān)系數(shù)據(jù)庫中的方法。本發(fā)明包括1.將電子表格單元格組合為關(guān)系數(shù)據(jù)庫表的組合模式;2.組合模式的具體描述;3.存儲電子表格上的數(shù)據(jù)表定義;4.為用戶提供一種可直觀理解的接口操作方式,輸入數(shù)據(jù)表定義;5.已輸入并已存儲的數(shù)據(jù)表定義,如何被利用,以達(dá)到真正地將電子表格單元格中的內(nèi)容存儲到關(guān)系數(shù)據(jù)庫中的目的。采用該方法是實(shí)現(xiàn)電子表格數(shù)據(jù)網(wǎng)絡(luò)化的基礎(chǔ)。優(yōu)點(diǎn)是可保持電子表格單元格內(nèi)容及單元格之間的含義,存儲簡潔、高效。
文檔編號G06F17/24GK1741020SQ20051010558
公開日2006年3月1日 申請日期2005年9月29日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者徐礦妹, 崔亞軍 申請人:北京勤哲軟件技術(shù)有限責(zé)任公司