表格排版方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種表格排版方法和裝置,該方法包括:在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格;判斷當(dāng)前單元格是否存在特殊符號對齊屬性;如果不存在,則繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性;如果存在,則確定基準(zhǔn)單元格;根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整;位置調(diào)整完成后,繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性。利用本發(fā)明,可以滿足用戶的對排版的個性化需求。
【專利說明】表格排版方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字排版【技術(shù)領(lǐng)域】,具體而言,涉及一種表格排版方法和裝置。
【背景技術(shù)】
[0002]目前在表格進(jìn)行特殊符號對齊操作時,提供的操作是選中整列進(jìn)行設(shè)置,使得整列都以特殊符號來對齊。
[0003]這種操作模式提供的排版效果比較簡單,無法滿足用戶的個性化需求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種表格排版方法和裝置,以滿足用戶對表格排版的個性化需求。
[0005]為此,本發(fā)明實施例提供如下技術(shù)方案:
[0006]一種表格排版方法,包括:
[0007]在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格;
[0008]判斷當(dāng)前單元格是否存在特殊符號對齊屬性;
[0009]如果不存在,則繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性;
[0010]如果存在,則確定基準(zhǔn)單元格;
[0011]根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;
[0012]對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整;
[0013]位置調(diào)整完成后,繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性。
[0014]優(yōu)選地,所述遍歷表格中的單元格包括:
[0015]按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。
[0016]優(yōu)選地,所述確定基準(zhǔn)單元格包括:
[0017]如果所述當(dāng)前單元格位于第一行,則將所述當(dāng)前單元格作為基準(zhǔn)單元格;
[0018]否則,則在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。
[0019]優(yōu)選地,所述方法還包括:
[0020]在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
[0021]優(yōu)選地,所述方法還包括:
[0022]在輸入引起單元格內(nèi)容發(fā)生改變的操作后,對表格進(jìn)行重排,生成排版結(jié)果大樣;
[0023]啟動單元格調(diào)整,以對每個單元格作對齊調(diào)整。
[0024]一種表格排版裝置,包括:
[0025]遍歷模塊,用于在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格;
[0026]判斷模塊,用于判斷當(dāng)前單元格是否存在特殊符號對齊屬性;如果不存在,則通知所述遍歷模塊開始遍歷下一單元格;
[0027]基準(zhǔn)單元格確定模塊,用于在所述判斷模塊判斷當(dāng)前單元格存在特殊符號對齊屬性后,確定基準(zhǔn)單兀格;
[0028]偏移值計算模塊,用于根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;
[0029]調(diào)整模塊,用于對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整,并在所述位置調(diào)整完成后,通知所述遍歷模塊開始遍歷下一單元格。
[0030]優(yōu)選地,所述遍歷模塊,具體用于按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。
[0031]優(yōu)選地,所述基準(zhǔn)單元格確定模塊,具體用于在所述當(dāng)前單元格位于第一行時,將所述當(dāng)前單元格作為基準(zhǔn)單元格;否則,在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。
[0032]優(yōu)選地,所述裝置還包括:
[0033]所述基準(zhǔn)單元格確定模塊,還用于在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
[0034]優(yōu)選地,所述裝置還包括:
[0035]排版模塊,用于在輸入引起單元格內(nèi)容發(fā)生改變的操作后,對表格進(jìn)行重排,生成排版結(jié)果大樣;
[0036]啟動模塊,用于啟動單元格調(diào)整,以對每個單元格作對齊調(diào)整。
[0037]本發(fā)明實施例提供的表格排版方法和裝置,在需要對表格中的單元格做對齊調(diào)整時,通過遍歷表格中的單元格,確定基準(zhǔn)單元格;根據(jù)基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;對當(dāng)前單元格按照該偏移值進(jìn)行位置調(diào)整。從而可以方便地實現(xiàn)同一列中部分行中的單元格以特殊符號對齊。而且,進(jìn)一步地,還可以需要對齊的特殊符號進(jìn)行判斷,實現(xiàn)一列內(nèi)不同單元格以不同的特殊符號對齊,滿足了用戶對表格排版的個性化需求。
【專利附圖】
【附圖說明】
[0038]圖1是本發(fā)明實施例表格排版方法的流程圖;
[0039]圖2是本發(fā)明實施例中以特殊符號對齊的表格排版示意圖;
[0040]圖3是圖2所示表格的具體排版流程圖;
[0041]圖4是本發(fā)明實施例表格排版裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0042]下面將參考附圖并結(jié)合實施例,來詳細(xì)說明本發(fā)明。
[0043]圖1所示,是本發(fā)明實施例表格排版方法的流程圖,包括以下步驟:
[0044]步驟101,在需要對表格中的單元格做對齊調(diào)整時,獲取當(dāng)前單元格。
[0045]步驟102,判斷當(dāng)前單元格是否存在特殊符號對齊屬性;如果不存在,則執(zhí)行步驟106 ;否則,執(zhí)行步驟103。
[0046]步驟103,確定基準(zhǔn)單元格。
[0047]具體地,如果所述當(dāng)前單元格位于第一行,則將所述當(dāng)前單元格作為基準(zhǔn)單元格;否則,則在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。如果在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
[0048]步驟104,根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值。
[0049]步驟105,對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整。
[0050]步驟106,判斷是否已遍歷完表格中的所有單元格;如果是,則結(jié)束;否則,執(zhí)行步驟 107 ;
[0051]步驟107,獲取下一單元格作為當(dāng)前單元格,然后返回步驟102,繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性。
[0052]需要說明的是,在實際應(yīng)用中,在遍歷表格中的單元格時,可以按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。當(dāng)然,也可以按照其它順序,對此本發(fā)明實施例不做限定。
[0053]下面以圖2所示表格為例,進(jìn)一步詳細(xì)說明本發(fā)明實施例表格排版方法。
[0054]如圖2所示的表格,此例中要求第一列和第三列采用斜線符對齊,而第二列和第四列采用小數(shù)點對齊,所有列的前兩行不參與對齊。
[0055]現(xiàn)有技術(shù)的方案中,如果采用特殊符號對齊時,必須以列為單位,則無法實現(xiàn)圖2中的效果。
[0056]而利用本發(fā)明實施例的方案,可以很好地達(dá)到上述對齊效果,具體過程如下:
[0057]1.選中需要做特殊符號對齊的單元格,設(shè)置對齊屬性,并將該屬性記錄在每個選中的單元格的屬性中。
[0058]2.按照正常排版流程對單元格小樣進(jìn)行重排,排版結(jié)果生成大樣。
[0059]所述小樣指的是文字的內(nèi)容,大樣指的是文字在區(qū)域內(nèi)呈現(xiàn)的結(jié)果。比如同樣的“1234567890”一串?dāng)?shù)字,由于文本框的寬度不同,可能會呈現(xiàn)2行,3行等不同的顯示效果。每種顯示效果都是一個大樣,而這串?dāng)?shù)字的內(nèi)容本身并不會改變,這就是小樣。排版的作用就是根據(jù)不同文字框的寬度,來把小樣對應(yīng)的大樣呈現(xiàn)出來。
[0060]3.遍歷表格,對每個單元格做對齊調(diào)整。
[0061 ] 需要說明的是,在遍歷單元格時,可以按照一定的順序比如從左到右,從上到下的順序,當(dāng)然,也可以隨機(jī)選取第一個要遍歷的單元格,對此本發(fā)明實施例不做限定,只要能夠遍歷表格中的所有單元格即可。
[0062]具體調(diào)整過程如下:
[0063](I)獲取當(dāng)前單元格,即需要做對齊調(diào)整的單元格,為了描述清楚方便,將當(dāng)前單元格稱為單元格C ;
[0064](2)檢查單元格C是否有對齊屬性;如果沒有,則跳過該單元格到下一個單元格子;如果有對齊屬性,則執(zhí)行下一步。
[0065](3)找到與單元格C同列的上一行單元格;如果該單元格沒有對齊屬性,則執(zhí)行下一步。如果該單元格存在對齊屬性,則重復(fù)步驟(3)直到找到?jīng)]有對齊屬性的單元格,為了描述方便,將該沒有對齊屬性的單元格稱為單元格D。
[0066]向上查找,目的是查找對齊基準(zhǔn)單元格。當(dāng)找到后根據(jù)這個單元格中特殊符號的位置,來對單元格C內(nèi)的文字偏移,達(dá)到對齊效果。
[0067](4)設(shè)置與單元格D同列的下一行單元格為基準(zhǔn)單元格。將單元格C根據(jù)基準(zhǔn)單元格特殊符號的位置進(jìn)行偏移。如果基準(zhǔn)單元格就是C本身,則無需調(diào)整。
[0068]對齊操作簡單說明下:首先,計算出單元格C和基準(zhǔn)單元格間每個單元格的寬度及特殊符號的大樣位置Pos(x,y)。如果是居中對齊,則對每個單元格內(nèi)容進(jìn)行偏移Y(width / 2 — Pos.x),以實現(xiàn)特殊符號居中效果;如果是居左對齊,先比較得到這些單元格內(nèi)容中特殊符號位置Pos.X的最大值MaxPos.x,然后所有單元格統(tǒng)一偏移(MaxPos.x-Pos.x)。相應(yīng)地,居右對齊同理。
[0069]需要說明的是,如果在步驟(4)中找到了行首,仍有對齊屬性,則將該行首單元格作為基準(zhǔn)單元格。
[0070]圖3示出了圖2所示表格的具體排版流程,主要包括如下步驟:
[0071](1)在輸入文字等引起單元格內(nèi)容發(fā)生改變而必須重排的操作后,按正常的排版流程對表格進(jìn)行重排,生成排版結(jié)果大樣。
[0072](2)啟動單元格調(diào)整。按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。
[0073](3)判斷當(dāng)前單元格C是否存在特殊符號對齊屬性,如果不存在,則返回步驟(2)。如果存在,則進(jìn)入步驟(4)。
[0074](4)判斷單元格C是否為第一行。如果是,則設(shè)置該單元格為基準(zhǔn)單元格,并進(jìn)入步驟(6)。如果不是,則進(jìn)入步驟(5)。
[0075](5)取得該單元格C同列的上一行單元格u,并判斷單元格u是否存在特殊符號對齊屬性。如果存在,則將單元格u臨時設(shè)置為當(dāng)前單元格,并返回步驟(4)進(jìn)行處理。如果不存在,則設(shè)置單元格C為基準(zhǔn)單元格。
[0076](6)根據(jù)基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出需要偏移的值。將當(dāng)前單元格按照此值進(jìn)行相應(yīng)的位置調(diào)整。結(jié)束后返回步驟(2),繼續(xù)處理下一單元格。
[0077](7)所有單元格遍歷結(jié)束后,就完成了此次排版的特殊符號調(diào)整操作。
[0078]由此可見,本發(fā)明實施例提供的表格排版方法,在需要對表格中的單元格做對齊調(diào)整時,通過遍歷表格中的單元格,確定基準(zhǔn)單元格;根據(jù)基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;對當(dāng)前單元格按照該偏移值進(jìn)行位置調(diào)整。從而可以方便地實現(xiàn)同一列中部分行中的單元格以特殊符號對齊,滿足了用戶對表格排版的個性化需求。
[0079]而且,進(jìn)一步地,還可以需要對齊的特殊符號進(jìn)行判斷,實現(xiàn)同一列內(nèi)分別以兩種不同的特殊符號對齊的方式。比如1-10行使用“Y”符號對齊,11-20行使用“$”符號對齊?,F(xiàn)有技術(shù)以整列為單位做特殊符號對齊操作,這種效果也無法實現(xiàn)。
[0080]相應(yīng)地,本發(fā)明實施例提供了一種表格排版裝置,如圖4所示,是該裝置的結(jié)構(gòu)示意圖。
[0081 ] 在該實施例中,所述裝置包括:
[0082]遍歷模塊401,用于在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格;
[0083]判斷模塊402,用于判斷當(dāng)前單元格是否存在特殊符號對齊屬性;如果不存在,則通知所述遍歷模塊401開始遍歷下一單元格;
[0084]基準(zhǔn)單元格確定模塊403,用于在所述判斷模塊402判斷當(dāng)前單元格存在特殊符號對齊屬性后,確定基準(zhǔn)單元格;
[0085]偏移值計算模塊404,用于根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;
[0086]調(diào)整模塊405,用于對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整,并在所述位置調(diào)整完成后,通知所述遍歷模塊401開始遍歷下一單元格。
[0087]在實際應(yīng)用中,上述遍歷模塊401具體可以按照列的從左至右,行的從上至下的順序開始遍歷所有單元格,當(dāng)然,也可以按照其它順序?qū)卧襁M(jìn)行遍歷,對此本發(fā)明實施例不做限定。
[0088]上述基準(zhǔn)單元格確定模塊403具體可以在所述當(dāng)前單元格位于第一行時,將所述當(dāng)前單元格作為基準(zhǔn)單元格;否則,在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。另外,基準(zhǔn)單元格確定模塊403還用于在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
[0089]另外,在本發(fā)明裝置的另一實施例中,所述裝置還可進(jìn)一步包括:排版模塊和啟動模塊,其中:
[0090]所述排版模塊用于在輸入引起單元格內(nèi)容發(fā)生改變的操作后,對表格進(jìn)行重排,生成排版結(jié)果大樣;
[0091]所述啟動模塊用于啟動單元格調(diào)整,以對每個單元格作對齊調(diào)整。
[0092]本發(fā)明實施例提供的表格排版裝置,在需要對表格中的單元格做對齊調(diào)整時,通過遍歷表格中的單元格,確定基準(zhǔn)單元格;根據(jù)基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值;對當(dāng)前單元格按照該偏移值進(jìn)行位置調(diào)整。從而可以方便地實現(xiàn)同一列中部分行中的單元格以特殊符號對齊。而且,進(jìn)一步地,還可以需要對齊的特殊符號進(jìn)行判斷,實現(xiàn)一列內(nèi)不同單元格以不同的特殊符號對齊,滿足了用戶對表格排版的個性化需求。
[0093]本發(fā)明提供了非整列單元格設(shè)置特殊符號對齊的方法,填補了當(dāng)前領(lǐng)域的空白。一方面實現(xiàn)了更豐富的表格排版效果,另一方面也讓用戶的操作更加靈活。
[0094]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0095]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種表格排版方法,其特征在于,包括: 在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格: 判斷當(dāng)前單元格是否存在特殊符號對齊屬性; 如果不存在,則繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性; 如果存在,則確定基準(zhǔn)單元格; 根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值; 對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整; 位置調(diào)整完成后,繼續(xù)判斷下一單元格是否存在特殊符號對齊屬性。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述遍歷表格中的單元格包括: 按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定基準(zhǔn)單元格包括: 如果所述當(dāng)前單元格位于第一行,則將所述當(dāng)前單元格作為基準(zhǔn)單元格; 否則,則在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述方法還包括: 在輸入引起單元格內(nèi)容發(fā)生改變的操作后,對表格進(jìn)行重排,生成排版結(jié)果大樣; 啟動單元格調(diào)整,以對每個單元格作對齊調(diào)整。
6.—種表格排版裝置,其特征在于,包括: 遍歷模塊,用于在需要對表格中的單元格做對齊調(diào)整時,遍歷表格中的單元格; 判斷模塊,用于判斷當(dāng)前單元格是否存在特殊符號對齊屬性;如果不存在,則通知所述遍歷模塊開始遍歷下一單元格; 基準(zhǔn)單元格確定模塊,用于在所述判斷模塊判斷當(dāng)前單元格存在特殊符號對齊屬性后,確定基準(zhǔn)單兀格; 偏移值計算模塊,用于根據(jù)所述基準(zhǔn)單元格和當(dāng)前單元格中特殊符號的位置,計算出偏移值; 調(diào)整模塊,用于對所述當(dāng)前單元格按照所述偏移值進(jìn)行位置調(diào)整,并在所述位置調(diào)整完成后,通知所述遍歷模塊開始遍歷下一單元格。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述遍歷模塊,具體用于按照列的從左至右,行的從上至下的順序開始遍歷所有單元格。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述基準(zhǔn)單元格確定模塊,具體用于在所述當(dāng)前單元格位于第一行時,將所述當(dāng)前單元格作為基準(zhǔn)單元格;否則,在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格,如果找到,則將沒有對齊屬性的單元格的下一行單元格作為基準(zhǔn)單元格。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 所述基準(zhǔn)單元格確定模塊,還用于在所述當(dāng)前單元格所屬列向上查找沒有對齊屬性的單元格時,如果直到第一行仍沒有找到,則將該列第一行的單元格作為基準(zhǔn)單元格。
10.根據(jù)權(quán)利要求6至9任一項所述的裝置,其特征在于,所述裝置還包括: 排版模塊,用于在輸入引起單元格內(nèi)容發(fā)生改變的操作后,對表格進(jìn)行重排,生成排版結(jié)果大樣; 啟動模塊,用于啟動單元格調(diào)整,以對每個單元格作對齊調(diào)整。
【文檔編號】G06F17/24GK104462048SQ201310426056
【公開日】2015年3月25日 申請日期:2013年9月18日 優(yōu)先權(quán)日:2013年9月18日
【發(fā)明者】王斌, 楊雷鳴, 王全鵬 申請人:北大方正集團(tuán)有限公司, 方正信息產(chǎn)業(yè)控股有限公司, 北京北大方正電子有限公司