專利名稱:一種電子表格單元格的繪制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種電子表格單元格的繪制方法和裝置。
背景技術(shù):
電子表格是由一個(gè)或一個(gè)以上的行和一個(gè)或一個(gè)以上的列所構(gòu)成。其中,任意行與任意列相互交叉均構(gòu)成電子表格的一個(gè)單元格。單元格用于存儲(chǔ)和顯示數(shù)據(jù)對(duì)象,同時(shí),也是用戶操作電子表格的接口。因此,如何快速有效的生成具有良好視覺(jué)效果的單元格就成為本領(lǐng)域技術(shù)人員所必須面臨的問(wèn)題。
現(xiàn)有技術(shù)中繪制單元格的方法為首先,定義幾種邊框的樣式。該邊框由1條或多條基線組成,其中,邊框的樣式由基線的排列和顯示規(guī)則決定;當(dāng)需要繪制一條邊框時(shí),獲取與該邊框相鄰的邊框的樣式,根據(jù)相鄰邊框的樣式選擇預(yù)置的不同的繪制方法繪制邊框。
按照上述方法繪制邊框,當(dāng)繪制兩條邊框的交角時(shí),需要根據(jù)邊框的樣式使用不同的繪制方法。如圖1所示,上邊框包含1條基線110,右邊框包含外側(cè)基線121和內(nèi)側(cè)基線122,當(dāng)兩條邊框相交時(shí),上邊框的基線110需要延伸并與右邊框的外側(cè)基線121相交。如圖2所示,上邊框包含外側(cè)基線210和內(nèi)側(cè)基線211,右邊框包含外側(cè)基線220和內(nèi)側(cè)基線221,那么在繪制時(shí),基線210與基線220相交,基線211與基線221相交。可以看出,基線122和基線221雖然同為邊框的內(nèi)側(cè)基線,位置也相同,但是顯示的長(zhǎng)度卻不一樣。由于任意兩種不同樣式的邊框在相交時(shí)的繪制方法各不相同,因此,現(xiàn)有技術(shù)中將所需的所有可能的繪制方法固化在程序中,在顯示單元格時(shí)根據(jù)用戶所選擇的邊框樣式選擇不同的方法進(jìn)行繪制。
但是,根據(jù)上述方法繪制邊框,當(dāng)需要增加一種邊框的樣式時(shí),為了適應(yīng)新邊框和已知邊框相交時(shí)的處理,需要在現(xiàn)有的繪制方法中增加新邊框和所有已知邊框相交時(shí)的繪制方法。例如,當(dāng)邊框的樣式為4條時(shí),所需預(yù)置的不同的繪制方法為C24+4=10種;當(dāng)邊框的樣式增加一條時(shí),所需預(yù)置的不同的繪制方法為C25+5=15種。這樣一來(lái),使得在程序中固化邊框繪制方法的復(fù)雜度和維護(hù)成本急劇增加。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種電子表格單元格繪制方法和裝置,以解決現(xiàn)有技術(shù)中當(dāng)增加、修改邊框樣式時(shí)需要重新定義和修改邊框繪制方法導(dǎo)致的維護(hù)成本以及風(fēng)險(xiǎn)的增加。
為解決上述問(wèn)題,本發(fā)明公開(kāi)了一種電子表格單元格的繪制方法,該方法包括預(yù)置邊框模型,根據(jù)所述邊框模型定義邊框樣式,所述邊框模型至少包括2條基線;從所述邊框樣式中選擇目標(biāo)邊框樣式;獲取目標(biāo)邊框的相鄰邊框;根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框;按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
其中,所述繪制目標(biāo)邊框是按照所述目標(biāo)邊框樣式的基線繪制該目標(biāo)邊框的基線。
優(yōu)選的,所述邊框模型中包括一條標(biāo)準(zhǔn)基線。
優(yōu)選的,所述對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校還包括按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框中基線的顯示長(zhǎng)度;根據(jù)上述計(jì)算結(jié)果繪制所述目標(biāo)邊框和/或相鄰邊框中的基線。
優(yōu)選的,所述邊框模型用二進(jìn)制表示;所述邊框模型中的每一條基線用一個(gè)bit表示。
優(yōu)選的,根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框時(shí),若該目標(biāo)邊框樣式的基線對(duì)應(yīng)的bit位值為1,則繪制該基線,否則,無(wú)需繪制該基線或?qū)⒃摶€繪置為透明。
優(yōu)選的,所述邊框模型與目標(biāo)邊框存儲(chǔ)時(shí)的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。
為解決上述問(wèn)題,本發(fā)明還公開(kāi)了一種電子表格單元格繪制裝置,包括存儲(chǔ)單元,用于存儲(chǔ)預(yù)置的邊框模型以及根據(jù)該邊框模型定義的邊框樣式,所述邊框模型包括至少2條基線;選擇單元,用于從存儲(chǔ)單元中的邊框樣式中選擇目標(biāo)邊框樣式;獲取單元,用于獲取目標(biāo)邊框的相鄰邊框;繪制單元,用于根據(jù)選擇單元所選擇的目標(biāo)邊框樣式繪制目標(biāo)邊框;調(diào)校單元,用于按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
其中,所述繪制單元是根據(jù)所述目標(biāo)邊框樣式的基線繪制目標(biāo)邊框的基線。
優(yōu)選的,所述調(diào)校單元還包括計(jì)算單元,用于按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框中基線的顯示長(zhǎng)度;所述繪制單元還用于根據(jù)計(jì)算單元的計(jì)算結(jié)果繪制目標(biāo)邊框和/或相鄰邊框中的基線。
優(yōu)選的,所述邊框模型用二進(jìn)制表示;所述邊框模型中的每一條基線用一個(gè)bit位表示。
優(yōu)選的,所述邊框模型與目標(biāo)邊框存儲(chǔ)時(shí)的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明中任意一條邊框都對(duì)應(yīng)相同的邊框模型,通過(guò)控制不同邊框模型中基線的顯示和排列規(guī)則定義不同的邊框樣式。由于各邊框中包含的基線數(shù)目相同,因此,本發(fā)明在繪制邊框時(shí),根據(jù)邊框中各基線的顯示和排列規(guī)則,按預(yù)置規(guī)則計(jì)算各基線的顯示長(zhǎng)度并完成繪制。當(dāng)需要增加新的邊框樣式時(shí),只需重新設(shè)置一種基線的顯示規(guī)則即可,而按照預(yù)置規(guī)則計(jì)算基線的顯示長(zhǎng)度完成繪制的方法不需要任何改變。這樣一來(lái),大大降低了邊框繪制方法的復(fù)雜度也節(jié)約了維護(hù)成本。
本發(fā)明預(yù)置的邊框模型與該邊框在內(nèi)存中的存儲(chǔ)結(jié)構(gòu)相對(duì)應(yīng)。當(dāng)繪制目標(biāo)邊框時(shí),根據(jù)目標(biāo)邊框樣式中基線的顯示及排列規(guī)則一一繪制目標(biāo)邊框的基線,同時(shí)也可根據(jù)邊框在內(nèi)存中對(duì)應(yīng)的二進(jìn)制值得到該邊框的邊框樣式以及邊框中各基線的組成和排列規(guī)則。這樣的一體化設(shè)計(jì)使得在繪制邊框時(shí)可按照統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行處理,簡(jiǎn)化了繪制邊框的過(guò)程,降低了處理的復(fù)雜度。另外,本發(fā)明用二進(jìn)制表示邊框模型,邊框中的每一條基線用一個(gè)bit表示。在繪制和處理基線時(shí),這樣的結(jié)構(gòu)最符合計(jì)算機(jī)處理數(shù)據(jù)時(shí)的按位處理方式,由于不需要在不同的數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換,因此,不但降低了對(duì)系統(tǒng)內(nèi)存及相關(guān)資源的占用,而且提高了繪制單元格時(shí)的處理速度,給用戶以良好的使用感受。
圖1是現(xiàn)有技術(shù)繪制邊框的效果示意圖;圖2是現(xiàn)有技術(shù)繪制邊框的另一種效果示意圖;圖3是根據(jù)本發(fā)明所述的一種繪制電子表格單元格方法的實(shí)施例的步驟流程圖;圖4是根據(jù)本發(fā)明所述的一種繪制電子表格單元格方法的實(shí)施例的效果圖;圖5是根據(jù)本發(fā)明所述的一種繪制電子表格單元格方法的實(shí)施例的另一效果圖;圖6是根據(jù)本發(fā)明所述的一種繪制電子表格單元格裝置的實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式
本發(fā)明所述的繪制電子表格單元格的方法包括預(yù)置邊框模型,根據(jù)所述邊框模型定義邊框樣式,所述邊框模型至少包括2條基線;從所述邊框樣式中選擇目標(biāo)邊框樣式;獲取目標(biāo)邊框的相鄰邊框;根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框;按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
如圖3所示,是本發(fā)明所述的繪制電子表格單元格的方法的實(shí)施例的步驟流程圖。下面參考圖3對(duì)該實(shí)施例進(jìn)行詳細(xì)描述。
步驟301預(yù)置邊框模型。
任意一個(gè)單元格均由4條邊框組成。因此,邊框是單元格在內(nèi)存中的最小存儲(chǔ)單位。而邊框模型則定義了邊框的組成結(jié)構(gòu),在本例中,邊框模型由至少2條基線組成,并且邊框模型中的基線組成與最終顯示給用戶的邊框具有對(duì)應(yīng)關(guān)系。例如,若邊框模型定義了15條基線,則用戶在計(jì)算機(jī)顯示界面看到的邊框也由15條基線組成,這些基線緊密排列,每一條基線占用一個(gè)像素寬,若所有的基線都顯示,則最終的顯示效果是一條寬15像素的邊框。當(dāng)然,邊框模型中定義多少條基線可根據(jù)實(shí)際需要決定。優(yōu)選的,所述邊框模型包括一條標(biāo)準(zhǔn)基線。通過(guò)標(biāo)準(zhǔn)基線可以更方便地設(shè)置各基線的排列規(guī)則,例如,以標(biāo)準(zhǔn)基線為參照設(shè)置各基線的長(zhǎng)度。優(yōu)選的,設(shè)置其他基線分別位于該標(biāo)準(zhǔn)基線的兩側(cè)呈對(duì)稱排列,各基線之間彼此平行。需要說(shuō)明的是上述設(shè)置標(biāo)準(zhǔn)基線的方法只是本實(shí)施例的優(yōu)選的方法,如何設(shè)置邊框模型中標(biāo)準(zhǔn)基線的數(shù)目及位置本發(fā)明對(duì)此不做限制。
步驟302根據(jù)邊框模型確定邊框的樣式。
邊框中所包含基線數(shù)目以及排列規(guī)則構(gòu)成了邊框的不同樣式。優(yōu)選的,所述邊框模型用二進(jìn)制表示,該邊框模型中的每一條基線用一個(gè)bit表示。這樣一來(lái),使用二進(jìn)制數(shù)就可定義多種不同類型的邊框樣式,例如,用連續(xù)的3個(gè)bit表示標(biāo)準(zhǔn)基線和位于該標(biāo)準(zhǔn)基線兩側(cè)的2條基線。對(duì)于每一個(gè)bit,若值為0時(shí)表示對(duì)應(yīng)的位置不顯該基線,為1則顯示。因此,當(dāng)邊框模型包括3條基線時(shí),其可能的排列規(guī)則如下內(nèi)側(cè)基線標(biāo)準(zhǔn)基線外側(cè)基線000,表示不顯示任何基線;001,表示僅顯示外側(cè)基線;010,表示僅顯示標(biāo)準(zhǔn)基線;011,表示顯示標(biāo)準(zhǔn)基線和外側(cè)基線;100,表示僅顯示內(nèi)側(cè)基線;101,表示僅顯示外側(cè)基線和內(nèi)側(cè)基線,即中空的邊框;110,表示顯示內(nèi)側(cè)基線和標(biāo)準(zhǔn)基線;111,表示顯示全部3條基線。
以上也就是包含3條基線的邊框模型所能定義的邊框樣式。
步驟303從定義的邊框樣式中選擇目標(biāo)邊框樣式。
根據(jù)邊框樣式對(duì)應(yīng)的二進(jìn)制數(shù)值選擇目標(biāo)邊框樣式,例如若選擇的二進(jìn)制值101,則表示要繪制的目標(biāo)邊框的標(biāo)準(zhǔn)基線不顯示,該邊框?yàn)橐粭l中空的邊框。
步驟304獲取目標(biāo)邊框的相鄰邊框。
一條邊框在電子表格中與其相鄰的邊框可能有4條,即上下各2條。在本例中,與目標(biāo)邊框相鄰的左上邊框?yàn)橐粭l空心邊框,其對(duì)應(yīng)的二進(jìn)制值為101。
步驟305根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框。
本發(fā)明繪制目標(biāo)邊框時(shí)按照所述目標(biāo)邊框樣式的基線繪制該目標(biāo)邊框的基線。由上文描述可知,所述目標(biāo)邊框?qū)?yīng)的邊框樣式包括三條基線,并且標(biāo)準(zhǔn)基線不顯示,該樣式對(duì)應(yīng)的二進(jìn)制值為101。因此在計(jì)算機(jī)顯示裝置上繪制目標(biāo)邊框時(shí)只需繪制其內(nèi)側(cè)基線和外側(cè)基線。優(yōu)選的,所述邊框模型與目標(biāo)邊框在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。這樣的一體化設(shè)計(jì)使得在繪制邊框時(shí)可按照統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行處理,簡(jiǎn)化了繪制邊框的過(guò)程,降低了處理的復(fù)雜度。例如,當(dāng)確定了邊框的樣式后,該邊框在內(nèi)存中的值最終的顯示效果就已確定;同時(shí),通過(guò)獲取邊框在內(nèi)存中的二進(jìn)制值可以得知該邊框標(biāo)準(zhǔn)基線的組成及排列規(guī)則。下面是根據(jù)邊框模型定義其數(shù)據(jù)結(jié)構(gòu)示例{Byte midLine //1個(gè)bit描述標(biāo)準(zhǔn)基線,bit值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示該基線Byte exterLine //1個(gè)bit描述外側(cè)基線,bit值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示基線Byte interLine //1個(gè)bit描述內(nèi)側(cè)基線,bit值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示基線}步驟306按預(yù)置規(guī)則分別對(duì)目標(biāo)邊框和/或相鄰邊框的基線進(jìn)行調(diào)校。
調(diào)校的目的在于使繪制出的單元格具有美觀、易于使用的效果。優(yōu)選的,所述調(diào)校的具體過(guò)程包括按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框標(biāo)準(zhǔn)基線的顯示長(zhǎng)度;根據(jù)計(jì)算結(jié)果繪制所述目標(biāo)邊框和/或相鄰邊框中的基線。所述預(yù)置規(guī)則是兩條邊框相交時(shí)各基線的顯示規(guī)則,該規(guī)則可由本領(lǐng)域的技術(shù)人員在實(shí)施本發(fā)明時(shí)根據(jù)自己的要求自行設(shè)置。例如,若兩條邊框的內(nèi)側(cè)基線都顯示,則相交時(shí)不出現(xiàn)交叉,其交角為90度。在本例中目標(biāo)邊框和相鄰邊框的樣式所對(duì)應(yīng)的二進(jìn)制值均為101,即中心為空線的邊框。根據(jù)規(guī)則,需重新計(jì)算目標(biāo)邊框和相鄰邊框內(nèi)側(cè)基線的長(zhǎng)度,并重新繪制該基線。
至此,目標(biāo)邊框繪制完成并對(duì)目標(biāo)邊框和左上相鄰邊框的交角進(jìn)行了調(diào)校處理。由于目標(biāo)邊框與其他相鄰邊框相交時(shí)的調(diào)校方法相同,這里不再贅述。
需要說(shuō)明的是,上述實(shí)施例的步驟流程只是本發(fā)明優(yōu)選的方法,本領(lǐng)域技術(shù)人員在實(shí)施本發(fā)明時(shí)可對(duì)所述步驟任意組合,本發(fā)明對(duì)此不做限制。例如,在本發(fā)明的其它實(shí)施例中,在獲取到目標(biāo)邊框的相鄰邊框后即可根據(jù)該相鄰邊框在內(nèi)存中對(duì)應(yīng)的二進(jìn)制值得到該邊框?qū)?yīng)的邊框樣式,以及該邊框標(biāo)準(zhǔn)基線的顯示及排列規(guī)則。這樣一來(lái),在繪制目標(biāo)邊框前可根據(jù)預(yù)置的目標(biāo)邊框和相鄰邊框標(biāo)準(zhǔn)基線的相交規(guī)則,計(jì)算各基線相交時(shí)的顯示長(zhǎng)度,然后根據(jù)計(jì)算結(jié)果繪制目標(biāo)邊框和相鄰邊框。當(dāng)然,也可以在繪制完目標(biāo)邊框后再計(jì)算各邊框相交時(shí)基線的顯示長(zhǎng)度,然后根據(jù)計(jì)算結(jié)果對(duì)各邊框重新繪制。選擇何種繪制順序并不影響本發(fā)明的實(shí)施。
本發(fā)明中任意一條邊框?qū)?yīng)相同的邊框模型,通過(guò)控制不同邊框模型標(biāo)準(zhǔn)基線的顯示和排列規(guī)則定義不同的邊框樣式。由于邊框中包含的基線數(shù)目固定,因此,可根據(jù)各基線的設(shè)置情況將基線相交時(shí)的繪制方法全部預(yù)先固化在程序中。當(dāng)需要增加新的邊框樣式時(shí),只需重新設(shè)置一種基線的顯示規(guī)則即可,而已有的繪制方法不需要任何改變。這樣一來(lái),大大降低了編制邊框繪制方法的復(fù)雜度也節(jié)約了維護(hù)成本。
下面用一個(gè)具體的例子說(shuō)明本發(fā)明如何繪制邊框以及如何對(duì)邊框的基線進(jìn)行調(diào)校。在本例中,邊框模型定義了15條基線,其中,標(biāo)準(zhǔn)基線的左右兩側(cè)各有7條基線。該邊框模型對(duì)應(yīng)的二進(jìn)制表示為內(nèi)側(cè)基線 標(biāo)準(zhǔn)基線外側(cè)基線000000000000000為了便于在預(yù)置的繪制方法中對(duì)各基線進(jìn)行處理,優(yōu)選的分別用3個(gè)二進(jìn)制位表示內(nèi)側(cè)基線和外側(cè)基線中狀態(tài)為顯示的基線的條數(shù)??啥x邊框模型如下{Byte[2]interNum //內(nèi)側(cè)基線中狀態(tài)為顯示的基線數(shù),Byte[2]表示占3個(gè)bitByte[2]exterNum //外側(cè)基線中狀態(tài)為顯示的基線數(shù)Byte midLine //1個(gè)bit描述標(biāo)準(zhǔn)基線,bit值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示該基線Byte[6] exterLine //7個(gè)bit描述外側(cè)基線,每個(gè)bit對(duì)應(yīng)一條基線,bit
值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示基線Byte[6]interLine //7個(gè)bit描述內(nèi)側(cè)基線,每個(gè)bit對(duì)應(yīng)一條基線,bit值為0表示對(duì)應(yīng)位置不顯示基線,以白色或者單元格背景色填充,bit值為1表示對(duì)應(yīng)位置顯示基線}上述邊框模型的二進(jìn)制描述為interNum exterNummidLineexterLineinterLine000 0000 0000000 0000000上述結(jié)構(gòu)與邊框在內(nèi)存中的存儲(chǔ)結(jié)構(gòu)相對(duì)應(yīng)。由于每條基線占用1個(gè)bit,因此所述邊框占用3+3+1+7+7=21bit。因此,在實(shí)施本發(fā)明時(shí),使用一個(gè)int(一個(gè)int包含32bit)即可描述和存儲(chǔ)一個(gè)邊框。該邊框模型可描述的邊框樣式為2^15=32768種。當(dāng)然,本領(lǐng)域的技術(shù)人在實(shí)施發(fā)明時(shí)不必局限于上文所述,可根據(jù)實(shí)際需要確定基線的數(shù)目,定義邊框模型以及相應(yīng)的存儲(chǔ)結(jié)構(gòu)。
繪制目標(biāo)邊框的詳細(xì)過(guò)程如下(1)首先,選定目標(biāo)邊框的邊框樣式。該樣式中內(nèi)側(cè)基線顯示3條,外側(cè)基線顯示2條,標(biāo)準(zhǔn)基線不顯示,對(duì)應(yīng)的二進(jìn)制表示如下011 010 1 0000111 0000011該邊框中內(nèi)側(cè)基線從內(nèi)到外依次編號(hào)為a1、a2、a3、a4、a5、a6、a7、a8,其中a8為標(biāo)準(zhǔn)基線。該邊框中需要顯示的基線為a5、a6、a7總數(shù)為3用011表示。
(2)然后獲取相鄰邊框在內(nèi)存中的二進(jìn)制值,得到該邊框的樣式010 011 0 1000001 0000111該邊框中內(nèi)側(cè)基線從內(nèi)到外編號(hào)依次為b1、b2、b3、b4、b5、b6、b7、b8,其中b8為標(biāo)準(zhǔn)基線。該相鄰邊框中需要顯示的基線為b1和b7,用010表示。
(3)根據(jù)設(shè)定的相交規(guī)則采用相應(yīng)的算法計(jì)算各基線的顯示長(zhǎng)度并根據(jù)計(jì)算結(jié)果繪制該基線。
下面參照?qǐng)D4,以對(duì)內(nèi)側(cè)基線的計(jì)算、繪制為例,說(shuō)明具體算法。圖4中實(shí)線為顯示的基線,虛線是不顯示的基線。該算法的偽碼描述如下設(shè)目標(biāo)邊框內(nèi)側(cè)線條數(shù)為n,該例中n等于7;相鄰邊框內(nèi)側(cè)線條數(shù)為m,該例中m等于7;cal為基線縮減或增長(zhǎng)的計(jì)算因子,單位為像素,初始值為m;i為內(nèi)側(cè)基線所在的位置,依次為1、2、3、4、5、6、7。
步驟a設(shè)i=1;步驟b若i不大于n,則執(zhí)行步驟c;步驟c若與i對(duì)應(yīng)位置基線的二進(jìn)制值為1,即該位置基線顯示,則該基線的顯示長(zhǎng)度等于標(biāo)準(zhǔn)基線的長(zhǎng)度減去cal個(gè)像素,按該計(jì)算結(jié)果繪制該基線,然后執(zhí)行步驟d;若i對(duì)應(yīng)位置基線的二進(jìn)制值為0,執(zhí)行步驟e;步驟d若cal大于0,則cal值減1,否則設(shè)置cal值為0;步驟ei的值加1,然后重新執(zhí)行步驟b。
調(diào)校目標(biāo)邊框內(nèi)側(cè)基線和相鄰邊框內(nèi)側(cè)基線均采用上述算法實(shí)現(xiàn)。然后,依照類似的算法對(duì)外側(cè)基線進(jìn)行調(diào)校,其區(qū)別在于,步驟c中,基線的顯示長(zhǎng)度等于標(biāo)準(zhǔn)基線的長(zhǎng)度加cal個(gè)像素,具體過(guò)程請(qǐng)參見(jiàn)上文描述。
需要說(shuō)明的是,上述對(duì)基線調(diào)校的算法并非唯一方法,本領(lǐng)域的技術(shù)人員可根據(jù)所需要的基線的相交規(guī)則和效果自行設(shè)置邊框模型和相應(yīng)的算法。下面,參照?qǐng)D5對(duì)另一個(gè)邊框模型和算法進(jìn)行描述{Byte[2]interWidth //內(nèi)側(cè)基線中,狀態(tài)為顯示的最內(nèi)側(cè)基線到標(biāo)準(zhǔn)基線的寬度Byte[2]exterWidth //外側(cè)基線中,狀態(tài)為顯示的最外側(cè)基線到標(biāo)準(zhǔn)基線的寬度Byte midLine //標(biāo)準(zhǔn)基線Byte[6]interLine //內(nèi)側(cè)基線Byte[6]exterLine //外側(cè)基線}其中,定義exterWidth和interWidth的目的在于避免對(duì)所有的基線都做處理,縮短了繪制邊框所需的時(shí)間。
該邊框模型的二進(jìn)制描述為
interWidth exterWidthmidLineinterLineexterLine000 000 0 0000000 0000000依據(jù)該邊框模型的二進(jìn)制描述設(shè)定需要繪制的目標(biāo)邊框?yàn)?00 111 0001111 0000011其中,由于內(nèi)側(cè)基線中顯示的基線為a4、a5、a6、a7,第一個(gè)顯示的基線是a4,該基線到標(biāo)準(zhǔn)基線之間寬度為4個(gè)像素,即100。
依據(jù)該邊框模型的二進(jìn)制描述設(shè)定需要繪制的相鄰邊框?yàn)?11 111 1 1000001 0000011調(diào)校目標(biāo)邊框和相鄰邊框內(nèi)側(cè)基線算法的偽碼描述如下設(shè)x為目標(biāo)邊框的內(nèi)側(cè)基線中狀態(tài)為顯示的最內(nèi)側(cè)基線到標(biāo)準(zhǔn)基線的寬度,該例中x的值為4;y為相鄰標(biāo)邊框的內(nèi)側(cè)基線中狀態(tài)為顯示的最內(nèi)側(cè)基線到標(biāo)準(zhǔn)基線的寬度,該例中y的值為7;cal為基線縮減或增長(zhǎng)的計(jì)算因子,單位為素?cái)?shù),初始值為y;i為內(nèi)側(cè)基線所在的位置,依次為1、2、3、4、5、6、7。
步驟a設(shè)i=7-x+1;步驟b若i不大于7,則執(zhí)行步驟c;步驟c若與i對(duì)應(yīng)位置基線的二進(jìn)制值為1,即該位置基線顯示,則該基線的顯示長(zhǎng)度等于標(biāo)準(zhǔn)基線的長(zhǎng)度減去cal個(gè)像素,繪制該基線,然后執(zhí)行步驟d;若i對(duì)應(yīng)的位置基線的二進(jìn)制值為0,則執(zhí)行步驟e;步驟d若delt大于0,則delt值減1,否則設(shè)置delt值為0;步驟ei的值加1,然后重新執(zhí)行步驟b。
其中,7表示目標(biāo)邊框內(nèi)側(cè)線的條數(shù),包括顯示和未顯示的基線;7-x+1表示目標(biāo)邊框的內(nèi)側(cè)基線中第一個(gè)顯示的基線的位置。對(duì)于上面的例子,x值為4,所以7-x+1為4,即從基線a4開(kāi)始處理。
比較圖4和圖5,在基線數(shù)相同的情況下,根據(jù)不同的計(jì)算方法可得到不同的顯示效果。
以上,結(jié)合具體實(shí)施例描述了本發(fā)明的一種電子表格單元格的繪制方法。參照以上有關(guān)本發(fā)明的介紹,如圖6所示,是本發(fā)明所述的一種繪制電子表格單元格的裝置,包括存儲(chǔ)單元510、選擇單元520、獲取單元530、繪制單元540和調(diào)校單元550,其中,存儲(chǔ)單元510,用于存儲(chǔ)預(yù)置的邊框模型以及根據(jù)該邊框模型定義的邊框樣式,所述邊框模型包括至少2條基線;選擇單元520,用于根據(jù)存儲(chǔ)單元510中的邊框樣式選擇目標(biāo)邊框樣式;獲取單元530,用于獲取目標(biāo)邊框的相鄰邊框;繪制單元540,用于根據(jù)選擇單元520所選擇的目標(biāo)邊框樣式繪制目標(biāo)邊框;調(diào)校單元550,用于按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
優(yōu)選的,所述繪制單元540是根據(jù)所述目標(biāo)邊框樣式的基線繪制目標(biāo)邊框的基線。優(yōu)選的,所述調(diào)校單元550還包括計(jì)算單元560,用于按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框中基線的顯示長(zhǎng)度;所述繪制單元540還用于根據(jù)計(jì)算單元560的計(jì)算結(jié)果繪制目標(biāo)邊框和/或相鄰邊框中的基線。
優(yōu)選的,所述邊框模型用二進(jìn)制表示;所述邊框模型中的每一條基線用一個(gè)bit位表示。優(yōu)選的,所述邊框模型與目標(biāo)邊框存儲(chǔ)時(shí)的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。
首先,以二進(jìn)制定義邊框模型并存儲(chǔ)于存儲(chǔ)單元510中,該邊框模型由至少2條基線組成,每一條基線用一個(gè)bit表示。另外,根據(jù)該邊框模型定義邊框樣式,每一個(gè)邊框樣式對(duì)應(yīng)一個(gè)二進(jìn)制值,將該二進(jìn)制值也存儲(chǔ)在存儲(chǔ)單元510中。若需要繪制一條目標(biāo)邊框時(shí),首先,選擇單元520從存儲(chǔ)單元510中選擇一個(gè)邊框樣式作為目標(biāo)邊框樣式,然后獲取與該目標(biāo)邊框相鄰的邊框。一般情況下,對(duì)于一條邊框,在其兩端可能分別與兩側(cè)的邊框出現(xiàn)相交。獲取相鄰的邊框的目的就在于對(duì)出現(xiàn)相交的位置進(jìn)行處理。根據(jù)相鄰邊框在內(nèi)存中對(duì)應(yīng)的二進(jìn)制值可獲知該邊框?qū)?yīng)的邊框樣式,以及該邊框中個(gè)基線的顯示和排列規(guī)則。這樣,在分別確定了目標(biāo)邊框和相鄰邊框中的基線組成及排列規(guī)則后,然后調(diào)校單元550中的計(jì)算單元560可依據(jù)預(yù)定的規(guī)則計(jì)算得出兩個(gè)邊框的中的基線在相交時(shí)的顯示長(zhǎng)度。最后,繪制單元540根據(jù)計(jì)算單元的計(jì)算結(jié)果繪制目標(biāo)邊框和/或相鄰邊框中的基線。
上述關(guān)于本發(fā)明所述裝置的描述中未詳盡之處,可以參見(jiàn)本說(shuō)明書前述相關(guān)部分。
以上對(duì)本發(fā)明所提供的一種電子表格單元格的繪制方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種電子表格單元格繪制方法,其特征在于,包括以下步驟預(yù)置邊框模型,根據(jù)所述邊框模型定義邊框樣式,所述邊框模型至少包括2條基線;從所述邊框樣式中選擇目標(biāo)邊框樣式;獲取目標(biāo)邊框的相鄰邊框;根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框;按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
2.根據(jù)權(quán)利要求1所述的電子表格單元格繪制方法,其特征在于,所述繪制目標(biāo)邊框是按照所述目標(biāo)邊框樣式的基線繪制該目標(biāo)邊框的基線。
3.根據(jù)權(quán)利要求2所述的電子表格單元格繪制方法,其特征在于,所述邊框模型中包括一條標(biāo)準(zhǔn)基線。
4.根據(jù)權(quán)利要求3所述的電子表格單元格繪制方法,其特征在于,所述對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校還包括按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框中基線的顯示長(zhǎng)度;根據(jù)上述計(jì)算結(jié)果繪制所述目標(biāo)邊框和/或相鄰邊框中的基線。
5.根據(jù)權(quán)利要求1至4任意一項(xiàng)所述的電子表格單元格繪制方法,其特征在于,所述邊框模型用二進(jìn)制表示;所述邊框模型中的每一條基線用一個(gè)bit表示。
6.根據(jù)權(quán)利要求5所述的電子表格單元格繪制方法,其特征在于,根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框時(shí),若該目標(biāo)邊框樣式的基線對(duì)應(yīng)的bit位值為1,則繪制該基線,否則,無(wú)需繪制該基線或?qū)⒃摶€繪置為透明。
7.根據(jù)權(quán)利要求5所述的電子表格單元格繪制方法,其特征在于,所述邊框模型與目標(biāo)邊框存儲(chǔ)時(shí)的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。
8.一種電子表格單元格繪制裝置,其特征在于,包括存儲(chǔ)單元,用于存儲(chǔ)預(yù)置的邊框模型以及根據(jù)該邊框模型定義的邊框樣式,所述邊框模型包括至少2條基線;選擇單元,用于從存儲(chǔ)單元中的邊框樣式中選擇目標(biāo)邊框樣式;獲取單元,用于獲取目標(biāo)邊框的相鄰邊框;繪制單元,用于根據(jù)選擇單元所選擇的目標(biāo)邊框樣式繪制目標(biāo)邊框;調(diào)校單元,用于按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。
9.根據(jù)權(quán)利要求8所述的電子表格單元格繪制裝置,其特征在于,所述繪制單元是根據(jù)所述目標(biāo)邊框樣式的基線繪制目標(biāo)邊框的基線。
10.根據(jù)權(quán)利要求9所述的電子表格單元格繪制裝置,其特征在于,所述調(diào)校單元還包括計(jì)算單元,用于按預(yù)置規(guī)則計(jì)算目標(biāo)邊框和/或相鄰邊框中基線的顯示長(zhǎng)度;所述繪制單元還用于根據(jù)計(jì)算單元的計(jì)算結(jié)果繪制目標(biāo)邊框和/或相鄰邊框中的基線。
11.根據(jù)權(quán)利要求8至10任意一項(xiàng)所述的電子表格單元格繪制裝置,其特征在于,所述邊框模型用二進(jìn)制表示;所述邊框模型中的每一條基線用一個(gè)bit位表示。
12.根據(jù)權(quán)利要求11所述的電子表格繪制裝置,其特征在于,所述邊框模型與目標(biāo)邊框存儲(chǔ)時(shí)的數(shù)據(jù)結(jié)構(gòu)相對(duì)應(yīng)。
全文摘要
本發(fā)明公開(kāi)了一種繪制電子表格單元格的方法和裝置,所述方法包括預(yù)置邊框模型,根據(jù)所述邊框模型定義邊框樣式,所述邊框模型至少包括2條基線;從所述邊框樣式中選擇目標(biāo)邊框樣式;獲取目標(biāo)邊框的相鄰邊框;根據(jù)所述目標(biāo)邊框樣式繪制目標(biāo)邊框;按預(yù)置規(guī)則對(duì)目標(biāo)邊框和/或相鄰邊框進(jìn)行調(diào)校。這樣一來(lái),避免了現(xiàn)有技術(shù)中當(dāng)增加、修改邊框樣式時(shí)需要重新定義和修改邊框繪制方法導(dǎo)致的維護(hù)成本以及風(fēng)險(xiǎn)的增加。
文檔編號(hào)G06F17/24GK101021840SQ20071008722
公開(kāi)日2007年8月22日 申請(qǐng)日期2007年3月21日 優(yōu)先權(quán)日2007年3月21日
發(fā)明者徐輝 申請(qǐng)人:金蝶軟件(中國(guó))有限公司