CN105760170A - 一种交互式电子白板软件单元格合并与拆分方法 - Google Patents
一种交互式电子白板软件单元格合并与拆分方法 Download PDFInfo
- Publication number
- CN105760170A CN105760170A CN201610100793.3A CN201610100793A CN105760170A CN 105760170 A CN105760170 A CN 105760170A CN 201610100793 A CN201610100793 A CN 201610100793A CN 105760170 A CN105760170 A CN 105760170A
- Authority
- CN
- China
- Prior art keywords
- cell
- split
- splitting
- cell object
- irow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种交互式电子白板软件单元格合并与拆分方法,包括:步骤1、进行表格类的设计,所述表格类的设计包括建立表格类和建立表格单元格类;步骤2、根据表格类创建表格单元格对象,生成表格;步骤3、根据表格对象在白板软件中绘制表格;步骤4、选择表格中的单元格,进行单元格的合并或拆分。本发明实现交互式电子白板软件单元格的合并与拆分,方便数据的处理,提高数据处理的效率。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种交互式电子白板软件单元格合并与拆分方法。
背景技术
交互式电子白板可以与电脑进行信息通讯,将电子白板连接到计算机,并利用投影机将计算机上的内容投影到电子白板屏幕上,在专门的应用程序的支持下,可以构造一个大屏幕、交互式的协作会议或教学环境。目前交互式电子白板软件单元格无法实现合并与拆分,使得表格在使用时极为不便,对此,本专利申请针对现有技术的缺陷深入研究,并有本案产生。
发明内容
本发明要解决的技术问题,在于提供一种交互式电子白板软件单元格合并与拆分方法,实现单元格的合并与拆分。
本发明是这样实现的:一种交互式电子白板软件单元格合并与拆分方法,包括如下步骤:
步骤1、进行表格类的设计,所述表格类的设计包括建立表格类和建立表格单元格类;
步骤2、根据表格类创建表格单元格对象,生成表格;
步骤3、根据表格对象在白板软件中绘制表格;
步骤4、选择表格中的单元格,进行单元格的合并或拆分。
进一步的,所述步骤1中的表格类的属性包括:表格每一行的位置数组表格每一行的位置数组RowYPos、表格每一列的位置数组ColumnXPos以及表格单元格对象链表aList;
所述表格单元格类的属性包括:单元格上下左右边的编号it、ib、il、ir以及单元格四个点P1、P2、P3、P4。
进一步的,所述步骤2具体为:
步骤21、在白板软件中输入要建立的表格对象的行列个数iRow,iCol和要建立的整个表格的大小iw,ih,位置il,it;
步骤22、设置表格对象RowYPos数组个数为iRow+1个,设置ColumnXPos数组个数为iCol+1个;
步骤23、建立第i行第j列单元格i为0到iRow-1,j为0到iCol-1;
步骤24、将步骤23建立的表格单元格对象加入到表格单元格对象链表aList中;
步骤25、重复步骤23直到所有表格单元格对象建立完成。
进一步的,所述步骤23具体包括:
设置单元格P1点位置
P1.x=il+iw*j/iColP1.y=it+ih*i/iRow;
设置单元格P2点位置
P2.x=il+iw*(j+1)/iColP2.y=it+ih*i/iRow;
设置单元格P3点位置
P3.x=il+iw*(j+1)/iColP3.y=it+ih*(i+1)/iRow;
设置单元格P4点位置
P4.x=il+iw*j/iColP4.y=it+ih*(i+1)/iRow;
设置单元格it为i;
设置单元格ib为i+1;
设置单元格il为j;
设置单元格ir为j+1。
进一步的,所述步骤3具体包括:
步骤31、表格单元格对象链表aList中取出一个单元格对象;
步骤32、通过步骤31中的单元格对象的四个点P1,P2,P3,P4来绘制一个矩形;
步骤33、重复步骤31至步骤32直到表格单元格对象链表aList中的所有单元格对象绘制完成。
进一步的,所述步骤4具体包括:
步骤41、选择表格中的单元格对象,将选中的单元格对象添加到一个选中链表selList中;
步骤42、若需要进行单元格拆分操作,则进入步骤43;若需要进行单元格合并操作,则进入步骤45;
步骤43、判断选中的单元格是否满足单元格合并条件,若是,则进入步骤44,否则,合并失败,结束流程;
所述单元格合并条件是同时满足单元格个数大于1以及每个单元格的P1,P2,P3,P4四个点组成的形状为一个实心矩形;
步骤44、合并单元格,合并出来的单元格对象的四个点设置为选中单元格合并出来的实心矩形的对应四个点,将it,ib,il,ir设置为实心矩形对应的it,ib,il,ir,删除所选中的单元格对象,将合并的单元格对象添加到表格单元格对象链表aList中;
步骤45、输入要拆分的行数spR以及要拆分的列数spC,判断选中的单元格是否满足单元格拆分条件,若是,则进入步骤46,否则,拆分失败,结束流程;
所述单元格拆分条件是同时满足选中的单元格个数为1、所选单元格的四周的单元格的行数与所输入的要拆分的行数spR求余为0以及所选单元格的四周的单元格的列数与所输入的要拆分的列数spC求余为0;
步骤46、取得拆分单元格所在行中行数最多的单元格并取得这些单元格行高;
步骤47、所拆分出来单元格对象的行高设置为步骤46中取得所单元格对应的行高,同时it,ib设置为步骤46中取得的所有单元格对应的it,ib,这样可以让拆分的行高与左右两边保持一致;
步骤48、取得拆分单元格所在列中列数最多的单元格并取得这些单元格列宽;
步骤49、所拆分出来单元格对象的列宽设置为步骤48中取得所单元格对应的列宽,同时il,ir设置为步骤48中取得的所有单元格对应的il,ir,这样可以让拆分的列宽与上下两边保持一致;
步骤410、删除要拆分单元格对象,将拆分出来的单元格对象添加到表格单元格对象链表aList中。
本发明具有如下优点:本发明通过在交互式电子白板中实现单元格的合并与拆分,使得拆分后的单元格的行高与左右两边单元格保持一致,拆分后的单元格的列宽与上下两边保持一致,方便数据的处理,提高数据处理的效率。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
如图1所示,一种交互式电子白板软件单元格合并与拆分方法,包括如下步骤:
步骤1、进行表格类的设计,所述表格类的设计包括建立表格类和建立表格单元格类,所述表格类的属性包括:表格每一行的位置数组RowYPos、表格每一列的位置数组ColumnXPos以及表格单元格对象链表aList;
所述表格单元格类的属性包括:单元格上下左右边的编号it、ib、il、ir以及单元格四个点P1、P2、P3、P4(分别为左上,右上,右下,左下位置);
步骤2、根据表格类创建表格单元格对象,生成表格;所述步骤2进一步包括步骤21至步骤25:
步骤21、在白板软件中输入要建立的表格对象的行列个数iRow,iCol和要建立的整个表格的大小iw,ih,位置il,it;
步骤22、设置表格对象RowYPos数组个数为iRow+1个,设置ColumnXPos数组个数为iCol+1个;
步骤23、建立第i行第j列单元格i为0到iRow-1,j为0到iCol-1;
设置单元格P1点位置
P1.x=il+iw*j/iColP1.y=it+ih*i/iRow;
设置单元格P2点位置
P2.x=il+iw*(j+1)/iColP2.y=it+ih*i/iRow;
设置单元格P3点位置
P3.x=il+iw*(j+1)/iColP3.y=it+ih*(i+1)/iRow;
设置单元格P4点位置
P4.x=il+iw*j/iColP4.y=it+ih*(i+1)/iRow;
设置单元格it为i;
设置单元格ib为i+1;
设置单元格il为j;
设置单元格ir为j+1;
步骤24、将步骤23建立的表格单元格对象加入到表格单元格对象链表aList中;
步骤25、重复步骤23直到所有表格单元格对象建立完成;
步骤3、根据表格对象在白板软件中绘制表格,所述步骤3具体包括步骤31至步骤33:
步骤31、表格表格单元格对象链表aList中取出一个单元格对象;
步骤32、通过步骤31中的单元格对象的四个点P1,P2,P3,P4来绘制一个矩形;
步骤33、重复步骤31至步骤32直到表格单元格对象链表aList中的所有单元格对象绘制完成;
步骤4、选择表格中的单元格,进行单元格的合并或拆分,所述步骤4具体包括:
步骤41、选择表格中的单元格对象,将选中的单元格对象添加到一个选中链表selList中;
步骤42、若需要进行单元格拆分操作,则进入步骤43;若需要进行单元格合并操作,则进入步骤45;
步骤43、判断选中的单元格是否满足单元格合并条件,若是,则进入步骤44,否则,合并失败,结束流程;
所述单元格合并条件是同时满足单元格个数大于1以及每个单元格的P1,P2,P3,P4四个点组成的形状为一个实心矩形;
步骤44、合并单元格,合并出来的单元格对象的四个点设置为选中单元格合并出来的实心矩形的对应四个点,将it,ib,il,ir设置为实心矩形对应的it,ib,il,ir,删除所选中的单元格对象,将合并的单元格对象添加到表格单元格对象链表aList中;
步骤45、输入要拆分的行数spR以及要拆分的列数spC,判断选中的单元格是否满足单元格拆分条件,若是,则进入步骤46,否则,拆分失败,结束流程;
所述单元格拆分条件是同时满足选中的单元格个数为1、所选单元格的四周的单元格的行数与所输入的要拆分的行数spR求余为0以及所选单元格的四周的单元格的列数与所输入的要拆分的列数spC求余为0;
步骤46、取得拆分单元格所在行中行数最多的单元格并取得这些单元格行高;
步骤47、所拆分出来单元格对象的行高设置为步骤46中取得所单元格对应的行高,同时it,ib设置为步骤46中取得的所有单元格对应的it,ib,这样可以让拆分的行高与左右两边保持一致;
步骤48、取得拆分单元格所在列中列数最多的单元格并取得这些单元格列宽;
步骤49、所拆分出来单元格对象的列宽设置为步骤48中取得所单元格对应的列宽,同时il,ir设置为步骤48中取得的所有单元格对应的il,ir,这样可以让拆分的列宽与上下两边保持一致;
步骤410、删除要拆分单元格对象,将拆分出来的单元格对象添加到表格单元格对象链表aList中。
下面结合一具体实施方式对本发明做进一步说明:
本发明的一种交互式电子白板软件单元格合并与拆分方法的具体步骤:
步骤1、进行表格类的设计,所述表格类的设计进一步包括步骤11和步骤12:
步骤11、建立表格类,所述表格类包括如下属性:
表格每一行的位置数组RowYPos;
表格每一列的位置数组ColumnXPos;
表格单元格对象链表aList;
步骤12、建立表格单元格类,所述表格单元格类包含如下属性:
单元格上下左右边的编号it,ib,il,ir;
单元格的四个点P1,P2,P3,P4;
步骤2、根据表格类创建表格单元格对象,生成表格,表格的生成过程包括步骤21至步骤25:
步骤21、输入要建立的表格对象的行个数iRow和列个数iCol以及要建立的整个表格的大小iw,ih和位置il,it;
步骤22、设置表格对象RowYPos数组个数为iRow+1个,设置ColumnXPos数组个数为iCol+1个;
步骤23、建立第i行第j列单元格i为0到iRow-1,j为0到iCol-1;
设置单元格P1点位置
P1.x=il+iw*j/iColP1.y=it+ih*i/iRow;
设置单元格P2点位置
P2.x=il+iw*(j+1)/iColP2.y=it+ih*i/iRow;
设置单元格P3点位置
P3.x=il+iw*(j+1)/iColP3.y=it+ih*(i+1)/iRow;
设置单元格P4点位置
P4.x=il+iw*j/iColP4.y=it+ih*(i+1)/iRow;
设置单元格it为i;
设置单元格ib为i+1;
设置单元格il为j;
设置单元格ir为j+1;
步骤24、将步骤23建立的表格单元格对象加入到表格单元格对象链表aList中;
步骤25、重复步骤23直到所有表格单元格对象建立完成;
步骤3、根据表格对象在白板软件中绘制表格,具体包括步骤31至步骤33:
步骤31、在表格单元格对象链表aList中取出一个单元格对象;
步骤32、通过步骤31中的单元格对象的四个点P1,P2,P3,P4来绘制一个矩形;
步骤33、重复步骤31和步骤32直到表格单元格对象链表aList中的所有单元格对象绘制完成;
步骤4、选择表格中的单元格,进行单元格的合并或拆分,具体包括如下步骤:
步骤41、选择表格中的单元格对象,具体可以通过点选(x,y)并判断x,y是否在一个表格对象的单元格对象的四个点P1,P2,P3,P4所围成的矩形中来确定选中的单元格对象,也可以通过拖动(x,y,w,h)并判断表格对象的单元格对象的四个点P1,P2,P3,P4所围成的矩形是否与x,y,w,h所组成的矩形相交来确定选中的单元格对象;
将选中的单元格对象添加到一个选中链表selList中;
步骤42、若需要进行单元格拆分操作,则进入步骤43;若需要进行单元格合并操作,则进入步骤45;
步骤43、判断选中的单元格是否满足单元格合并条件,若是,则进入步骤44,否则,合并失败,结束流程;
所述单元格合并条件是同时满足选中的单元格对象个数大于1且每个选中的单元格的P1,P2,P3,P4四个点组成的形状为一个实心矩形,其中,单元格的P1,P2,P3,P4四个点组成的形状为一个实心矩形的判断方式具体为:将选中的单元格对象的P1,P2,P3,P4都添加到一个路径PathA中,再计算selList中所有单元格对象的P1,P2,P3,P4中的坐标最小值minx和miny以及坐标最大值maxx和maxy,将minx、miny、maxx和maxy所组成的矩形添加到路径PathB中,PathA和PathB分别建立区域rgnA和rgnB,rgnA异或rgnB,若为空则条件成立,否则条件不成立;
步骤44、合并单元格,合并出来的单元格对象的四个点设置为选中单元格合并出来的实心矩形的对应四个点,将it,ib,il,ir设置为合并出来的实心矩形对应的it,ib,il,ir,删除所选中的单元格对象,将合并的单元格对象添加到表格单元格对象链表aList中,具体实现方式如下:
i.初始化tempit为一个足够大的数如9999,tempib为-1,tempil为一个足够大的数如9999,tempir为-1;
ii.从SelList中取了一个单元格对象B;
iii.如果B的it小于tempit,则tempit设为B的it;
iv.如果B的ib大于tempib,则tempib设为B的ib;
v.如果B的il小于tempil,则tempil设为B的il;
vi.如果B的ir大于tempir,则tempir设为B的ir;
vii.计selList中所有单元格对象的P1,P2,P3,P4中最小的minx坐标,最小的miny坐标,最大的max坐标,最大的maxy坐标,将minx,miny,maxx,maxy所组成矩形,从这个矩形中生矩形的四个顶点tP1,tP2,tP3,tP4;
viii.将SelList中的所有单元格对象从表格对象中删除;
ix.建立一个新的单元格对象C,并添加到表格单元格对象链表aList中;
x.设置单元格P1点位置为tP1;
xi.设置单元格P2点位置为tP2;
xii.设置单元格P3点位置为tP3;
xiii.设置单元格P4点位置为tP4;
xiv.设置单元格it为tempit;
xv.设置单元格ib为tempib;
xvi.设置单元格il为tempil;
xvii.设置单元格ir为tempir;
xviii.初始化tempK为tempib减tempit减1;
xix.如果tempib减tempit大于1且存在表格单元格对象链表aList中的每一个单元格对象的it大于tempit且ib小于tempib则进行如下步骤:
a1、取出表格单元格对象链表aList中的每一个单元格对象D;
a2、如果D的it等于tempit则D的ib值设置为D的ib减去tempK;
a3、如果D的it大于tempit则D的it值设置为D的it减去1,D的ib的值设置为D的ib减去tempK;
xx.初始化tempK为tempir减tempil减1
xxi.如果tempir减tempil大于1且存在表格单元格对象链表aList中的每一个单元格对象的il大于tempil且ir小于tempir则进行如下步骤:
b1、取出表格单元格对象链表aList中的每一个单元格对象D;
b2、如果D的il等于tempil则D的il值设置为D的il减去tempK;
b3、如果D的il大于tempir则D的il值设置为D的il减去1,D的ir的值设置为D的ir减去tempK。
步骤45、输入要拆分的行数spR以及要拆分的列数spC,判断选中的单元格是否满足单元格拆分条件,若是,则进入步骤46,否则,拆分失败,结束流程;
所述单元格拆分条件是同时满足选中的单元格对象个数为1、所选单元格的四周的单元格的行数与所输入的要拆分的行数spR求余为0以及所选单元格的四周的单元格的列数与所输入的要拆分的列数spC求余为0;
比如,在选中的单元格只有一个时,当满足输入的要拆分的行数spR为可以拆分的行数且输入的要拆分的列数spC为可以拆分的列数时,则判为该单元格是可拆分的,具体的:
选中的单元格对象A的ib减it得到可拆分行数dRowCount;
选中的单元格对象A的ir减il得到可拆分列数dColumnCount;
如果输入的要拆分的行数spR小于可拆分行数dRowCount,则dRowCount除以spR得出的余数为0,则表示spR就是可以拆分的行数;
如果输入的要拆分的行数spR大于可拆分行数dRowCount,则spR除以dRowCount得出的余数为0,则表示spR就是可以拆分的行数;
如果输入的要拆分的列数spC小于可拆分列数dColumnCount,则dColumnCount除以spC得出的余数为0,则表示spC就是可以拆分的列数;
如果输入的要拆分的列数spC大于可拆分列数dColumnCount,则spC除以dColumnCount得出的余数为0,则表示spC就是可以拆分的列数;
步骤46、取得拆分单元格所在行中行数最多的单元格并取得这些单元格行高;
步骤47、所拆分出来单元格对象的行高设置为步骤46中取得所单元格对应的行高,同时it,ib设置为步骤46中取得的所有单元格对应的it,ib,这样可以让拆分的行高与左右两边保持一致;
步骤48、取得拆分单元格所在列中列数最多的单元格并取得这些单元格列宽;
步骤49、所拆分出来单元格对象的列宽设置为步骤48中取得所单元格对应的列宽,同时il,ir设置为步骤48中取得的所有单元格对应的il,ir,这样可以让拆分的列宽与上下两边保持一致;
步骤410、删除要拆分单元格对象,将拆分出来的单元格对象添加到表格单元格对象链表aList中;拆分单元格的具体实现如下:
i.通过要拆分单元格A的P1,P2,P3,P4点取得单元格宽CellW和单元格高CellH;
ii.CellW除以行数spR得到拆分单元格的平均宽度SpCellW;
iii.CellH除以列数spC得到拆分单元格的平均高度SpCellH;
iv.初始化拆分单元格各单元格列宽数组spWidthArr,设置spWidthArr长度为1,元素值初始化为0;
v.如果A的ir减去A的il大于1则进行如下步骤,否则进行vi步;
1.初始化一个标记J为1;
2.初始化一个标记K为A的ir减去A的il的值整除spC;
3.设置当前单元格curCell为单元格A;
4.取出表格单元格对象链表aList的一个单元格对象TempCell;
5.如果TempCell的il等于单元格A的il加上(J*K),则进行如下步骤
a)设置spWidthArr长度为J+1;
b)spWidthArr的第J个元素设置为spWidthArr的第J-1;个元素加上TempCell的P1的x坐标减去curCell的P1的x坐标;
c)curCell设置为TempCell;
d)J的值加1;
6.如果J*K等于单元格A的ir减去单元格A的il,则进行如下步骤
a)设置spWidthArr长度为J+2;
b)spWidthArr的第J个元素设置为spWidthArr的第J-1个元素加上A的P1的x坐标减去curCell的P1的x坐标;
c)进行第viii步;
7.重复3-6步直到表格单元格对象链表aList都取完
vi.设置spWidthArr长度为spC+1;
vii.从spWidthArr第2个元素开始,设置spWidthArr的元素值为前一个元素的值加上SpCellW;
viii.初始化拆分单元格各单元格行高数组spHeightArr,设置spHeightArr长度为1,元素值初始化为0;
ix.如果A的ib减去A的it大于1则进行如下步骤,否则进行x步
1.初始化一个标记J为1;
2.初始化一个标记K为A的ib减去A的it的值整除spR;
3.设置当前单元格curCell为单元格A;
4.取出表格单元格对象链表aList的一个单元格对象TempCell;
5.如果TempCell的it等于单元格A的it加上(J*K),则进行如下步骤
a)设置spHeightArr长度为J+1;
b)spHeightArr的第J个元素设置为spHeightArr的第J-1个元素加上TempCell的P1的y坐标减去curCell的P1的y坐标;
c)curCell设置为TempCell;
d)J的值加1;
6.如果J*K等于单元格A的ib减去单元格A的it,则进行如下步骤
a)设置spHeightArr长度为J+2;
b)spHeightArr的第J个元素设置为spHeightArr的第J-1个元素加上A的P1的y坐标减去curCell的P1的y坐标;
c)进行第xii步;
7.重复3-6步直到表格单元格对象链表aList都取完;
x.设置spHeightArr长度为spR+1;
xi.从spHeightArr第2个元素开始,设置spHeightArr的元素值为前一个元素的值加上SpCellH;
xii.如果单元格A的ir减去单元格A的il等1则进行如下步骤
1.取出表格单元格对象链表aList的一个单元格对象TempCell;
2.如果TempCell的ir大于等于A的ir且TempCell不是A,则TempCell的ir的值设置为TempCell的ir加上spC减1;
3.如果TempCell的il大于A的il且TempCell不是A,则TempCell的il的值设置为TempCell的il加上spC减1;
4.重复1-3步直到表格单元格对象链表aList都取完;
xiii.如果单元格A的ib减去单元格A的it等1则进行如下步骤
1.取出表格单元格对象链表aList的一个单元格对象TempCell;
2.如果TempCell的ib大于等于A的ib且TempCell不是A,则TempCell的ib的值设置为TempCell的ib加上spR减1;
3.如果TempCell的it大于A的it且TempCell不是A,则TempCell的it的值设置为TempCell的it加上spR减1;
4.重复1-3步直到表格单元格对象链表aList都取完;
xiv.如果单元格A的ir减去单元格A的il大于1,则初始化K的值为单元格A的ir减去单元格A的il的值整除spC,否则K的值初始化为1;
xv.如果单元格A的ib减去单元格A的it大于1,则初始化K2的值为单元格A的ib减去单元格A的it的值整除spR,否则K2的值初始化为1;
xvi.如果spR等于1且spC不等1则进行如下步骤
1.初始化J为0;
2.J的值加1;
3.建立一个单元格对象AddCell;
4.AddCell的P1点设置为A的P1.x+spWidthArr的第J个元素,AddCell的P1.y设置为A的P1.y;
5.AddCell的P2点设置为A的P2.x+spWidthArr的第J+1个元素,AddCell的P2.y设置为A的P2.y;
6.AddCell的P3点设置为A的P3.x+spWidthArr的第J+1个元素,AddCell的P3.y设置为A的P3.y;
7.AddCell的P4点设置为A的P4.x+spWidthArr的第J个元素,AddCell的P4.y设置为A的P4.y;
8.设置AddCell的it为A的it,AddCell的ib为A的it+K2,AddCell的il为A的il+J*K,AddCell的it为A的il+(J+1)*K;
9.AddCell添加到表格单元格对象链表aList中;
xvii.如果spC等于1且spR不等1则进行如下步骤
1.初始化J为0;
2.J的值加1;
3.建立一个单元格对象AddCell;
4.AddCell的P1点设置为A的P1.x,AddCell的P1.y设置为A的P1.y+spHeightArr的第J个元素;
5.AddCell的P2点设置为A的P2.x,AddCell的P2.y设置为A的P2.y+spHeightArr的第J个元素;
6.AddCell的P3点设置为A的P3.x,AddCell的P3.y设置为A的P3.y+spHeightArr的第J+1个元素;
7.AddCell的P4点设置为A的P4.x,AddCell的P4.y设置为A的P4.y+spHeightArr的第J+1个元素;
8.设置AddCell的it为A的it+J*K2,AddCell的ib为A的it++(J+1)*K2,AddCell的il为A的il,AddCell的it为A的il+K;
9.AddCell添加到表格单元格对象链表aList中;
xviii.如果spC不等1且spR不等1则进行如下步骤
1.初始化J为0;
2.初始化I为0;
3.I的值加1;
4.J的值加1;
5.建立一个单元格对象AddCell;
6.AddCell的P1点设置为A的P1.x+spWidthArr的第J个元素,AddCell的P1.y设置为A的P1.y+spHeightArr的第I个元素;
7.AddCell的P1点设置为A的P1.x+spWidthArr的第J+1个元素,AddCell的P1.y设置为A的P1.y+spHeightArr的第I个元素;
8.AddCell的P1点设置为A的P1.x+spWidthArr的第J+1个元素,AddCell的P1.y设置为A的P1.y+spHeightArr的第I+1个元素;
9.AddCell的P1点设置为A的P1.x+spWidthArr的第J个元素,AddCell的P1.y设置为A的P1.y+spHeightArr的第I+1个元素;
10.设置AddCell的it为A的it+J*K2,AddCell的ib为A的it+(J+1)*K2,AddCell的il为A的il,AddCell的it为A的il+K;
11.AddCell添加到表格单元格对象链表aList;
12.重复4-11步直到J的值等于spC;
13.重复3-12步直到I的值等于spR;
xix.完成拆分。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种交互式电子白板软件单元格合并与拆分方法,其特征在于:包括如下步骤:
步骤1、进行表格类的设计,所述表格类的设计包括建立表格类和建立表格单元格类;
步骤2、根据表格类创建表格单元格对象,生成表格;
步骤3、根据表格对象在白板软件中绘制表格;
步骤4、选择表格中的单元格,进行单元格的合并或拆分。
2.根据权利要求1所述的一种交互式电子白板软件单元格合并与拆分方法,其特征在于:所述步骤1中的表格类的属性包括:表格每一行的位置数组表格每一行的位置数组RowYPos、表格每一列的位置数组ColumnXPos以及表格单元格对象链表aList;
所述表格单元格类的属性包括:单元格上下左右边的编号it、ib、il、ir以及单元格四个点P1、P2、P3、P4。
3.根据权利要求2所述的一种交互式电子白板软件单元格合并与拆分方法,其特征在于:所述步骤2具体为:
步骤21、在白板软件中输入要建立的表格对象的行列个数iRow,iCol和要建立的整个表格的大小iw,ih,位置il,it;
步骤22、设置表格对象RowYPos数组个数为iRow+1个,设置ColumnXPos数组个数为iCol+1个;
步骤23、建立第i行第j列单元格i为0到iRow-1,j为0到iCol-1;
步骤24、将步骤23建立的表格单元格对象加入到表格单元格对象链表aList中;
步骤25、重复步骤23直到所有表格单元格对象建立完成。
4.根据权利要求3所述的一种交互式电子白板软件单元格合并与拆分方法,其特征在于:所述步骤23具体包括:
设置单元格P1点位置
P1.x=il+iw*j/iColP1.y=it+ih*i/iRow;
设置单元格P2点位置
P2.x=il+iw*(j+1)/iColP2.y=it+ih*i/iRow;
设置单元格P3点位置
P3.x=il+iw*(j+1)/iColP3.y=it+ih*(i+1)/iRow;
设置单元格P4点位置
P4.x=il+iw*j/iColP4.y=it+ih*(i+1)/iRow;
设置单元格it为i;
设置单元格ib为i+1;
设置单元格il为j;
设置单元格ir为j+1。
5.根据权利要求2所述的一种交互式电子白板软件单元格合并与拆分方法,其特征在于:所述步骤3具体包括:
步骤31、表格单元格对象链表aList中取出一个单元格对象;
步骤32、通过步骤31中的单元格对象的四个点P1,P2,P3,P4来绘制一个矩形;
步骤33、重复步骤31至步骤32直到表格单元格对象链表aList中的所有单元格对象绘制完成。
6.根据权利要求2所述的一种交互式电子白板软件单元格合并与拆分方法,其特征在于:所述步骤4具体包括:
步骤41、选择表格中的单元格对象;
步骤42、若需要进行单元格拆分操作,则进入步骤43;若需要进行单元格合并操作,则进入步骤45;
步骤43、判断选中的单元格是否满足单元格合并条件,若是,则进入步骤44,否则,合并失败,结束流程;
所述单元格合并条件是同时满足单元格个数大于1以及每个单元格的P1,P2,P3,P4四个点组成的形状为一个实心矩形;
步骤44、合并单元格,合并出来的单元格对象的四个点设置为选中单元格合并出来的实心矩形的对应四个点,将it,ib,il,ir设置为实心矩形对应的it,ib,il,ir,删除所选中的单元格对象,将合并的单元格对象添加到表格单元格对象链表aList中;
步骤45、输入要拆分的行数spR以及要拆分的列数spC,判断选中的单元格是否满足单元格拆分条件,若是,则进入步骤46,否则,拆分失败,结束流程;
所述单元格拆分条件是同时满足选中的单元格个数为1、所选单元格的四周的单元格的行数与所输入的要拆分的行数spR求余为0以及所选单元格的四周的单元格的列数与所输入的要拆分的列数spC求余为0;
步骤46、取得拆分单元格所在行中行数最多的单元格并取得这些单元格行高;
步骤47、所拆分出来单元格对象的行高设置为步骤46中取得所单元格对应的行高,同时it,ib设置为步骤46中取得的所有单元格对应的it,ib,这样可以让拆分的行高与左右两边保持一致;
步骤48、取得拆分单元格所在列中列数最多的单元格并取得这些单元格列宽;
步骤49、所拆分出来单元格对象的列宽设置为步骤48中取得所单元格对应的列宽,同时il,ir设置为步骤48中取得的所有单元格对应的il,ir,这样可以让拆分的列宽与上下两边保持一致;
步骤410、删除要拆分单元格对象,将拆分出来的单元格对象添加到表格单元格对象链表aList中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610100793.3A CN105760170A (zh) | 2016-02-24 | 2016-02-24 | 一种交互式电子白板软件单元格合并与拆分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610100793.3A CN105760170A (zh) | 2016-02-24 | 2016-02-24 | 一种交互式电子白板软件单元格合并与拆分方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760170A true CN105760170A (zh) | 2016-07-13 |
Family
ID=56331118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610100793.3A Pending CN105760170A (zh) | 2016-02-24 | 2016-02-24 | 一种交互式电子白板软件单元格合并与拆分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760170A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902275A (zh) * | 2017-12-07 | 2019-06-18 | 东莞市杰诺软件科技有限公司 | 一种自定义表格的方法以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677784A (zh) * | 2012-09-25 | 2014-03-26 | 苏州精易会信息技术有限公司 | 一种程序界面设计方法 |
CN103677783A (zh) * | 2012-09-25 | 2014-03-26 | 苏州精易会信息技术有限公司 | 一种程序界面设计装置 |
CN104360992A (zh) * | 2014-12-02 | 2015-02-18 | 福建工程学院 | 一种基于excel平台构建的web报表设计系统及实现方法 |
-
2016
- 2016-02-24 CN CN201610100793.3A patent/CN105760170A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677784A (zh) * | 2012-09-25 | 2014-03-26 | 苏州精易会信息技术有限公司 | 一种程序界面设计方法 |
CN103677783A (zh) * | 2012-09-25 | 2014-03-26 | 苏州精易会信息技术有限公司 | 一种程序界面设计装置 |
CN104360992A (zh) * | 2014-12-02 | 2015-02-18 | 福建工程学院 | 一种基于excel平台构建的web报表设计系统及实现方法 |
Non-Patent Citations (2)
Title |
---|
朱意红,陈舒恩: "《交互式电子白板与教学革新》", 31 December 2014 * |
杨小丽: "《Excel公式、函数、图表与数据处理品应用大全》", 28 February 2015 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902275A (zh) * | 2017-12-07 | 2019-06-18 | 东莞市杰诺软件科技有限公司 | 一种自定义表格的方法以及电子设备 |
CN109902275B (zh) * | 2017-12-07 | 2023-04-21 | 广东杰诺软件科技有限公司 | 一种自定义表格的方法以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109167686B (zh) | 一种基于多层复杂网络拓扑的布局与展现方法 | |
CN110706314B (zh) | 元素布局方法、装置、电子设备及可读存储介质 | |
CN108876867B (zh) | 用于数字绘画的交互式颜色调色板接口 | |
CN104506951B (zh) | 一种文字输入方法、装置及智能终端 | |
CN107766428A (zh) | 一种自动实现数据可视化的方法和系统 | |
CN106355072A (zh) | 三维模型验证码的实现方法及其装置 | |
CN107239216A (zh) | 基于触摸屏的绘制处理方法和装置 | |
CN103500037A (zh) | 一种轨迹平滑的方法及装置 | |
CN102854982A (zh) | 一种识别自定义手势轨迹的方法 | |
CN109643218A (zh) | 用户界面元素的动画 | |
CN103309555A (zh) | 基于多窗口的焦点切换的方法及装置 | |
CN109491722B (zh) | 基于微信小程序的柱状图图表插件系统及其实现方法 | |
CN108628455B (zh) | 一种基于触摸屏手势识别的虚拟沙画绘制方法 | |
CN102221969B (zh) | 一种基于多点触控技术的视频缩放方法 | |
CN105760170A (zh) | 一种交互式电子白板软件单元格合并与拆分方法 | |
Lammie et al. | Empirical metal-oxide RRAM device endurance and retention model for deep learning simulations | |
CN103026319B (zh) | 基于方向键的文字输入方法及装置 | |
CN104615366A (zh) | 一种面向多设备的手势交互方法 | |
CN104656543A (zh) | 一种plc梯形图矩阵编辑显示方法 | |
Budel et al. | Random hyperbolic graphs in $ d+ 1$ dimensions | |
CN102298498A (zh) | 软键盘字符输入处理方法及装置 | |
CN103713930B (zh) | 一种图形化定义流程地图的方法和装置 | |
US9158452B2 (en) | Early drawing system and method to improve touch screen response | |
CN102902534B (zh) | 一种透明osd软件实现方法 | |
Vergés et al. | Spin alignment of extra electrons in K-phenanthrene clusters taken from the crystalline tripotassium-intercalated phenanthrene structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 350108 6, No. 1 Innovation Park, No. 3 east science and technology road, Minhou street, Minhou, Fuzhou. Applicant after: Returnstar Interactive Technology Group Co., Ltd. Address before: 350000 8 tower building, Orange Garden Industrial Park, 618 Jinshan Road, Jianxin Town, Cangshan District, Fuzhou, Fujian. Applicant before: Returnstar Interactive Technology Group Co., Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |
|
RJ01 | Rejection of invention patent application after publication |