表头斜线的配置式绘制方法、装置、电子设备及存储介质与流程



1.本发明涉及web前端技术领域,具体而言,涉及一种表头斜线的配置式绘制方法、装置、电子设备及存储介质。


背景技术:



2.在日常工作中,需要做大量的表格,这些表格中,有许多表格都需要用斜线表头来表达表格的内容,不论是在静态表格中,还是在动态表格中,设置表头斜线均是一件非常常见的操作。
3.传统的表头斜线绘制方法大部分只适用于静态表格,即已知表头单元格的表格内容以及宽高,静态设置单元格的斜线,这种实现方式中,每一条斜线都需要单独计算,代码可复用性差。当单元格的内容和宽度稍微有点变化时,必须重新去修改斜线,否则将会出现斜线位置和角度错乱的问题。


技术实现要素:



4.本发明的目的之一在于提供一种表头斜线的配置式绘制方法、装置、电子设备及存储介质,用以可以保证动态表格在不同数据下都可以正常兼容斜线配置,不用再来回修改单元格的样式,减少了一些人工成本方面的消耗。
5.第一方面,本发明提供一种表头斜线的配置式绘制方法,所述方法包括:对待处理表格进行起点配置和终点配置,获得点对集合;其中,所述待处理表格为空表格,所述点对集合中包含至少一个点对,所述点对内包含一个起点的位置标识和一个终点的位置标识;对待处理表格进行数据渲染,并确定渲染后的所述待处理表格中,表头单元格的高度信息和宽度信息、以及所述点对内所述起点和所述终点之间的线段所占的目标单元格的宽度和高度;针对所述点对,基于所述起点和所述终点之间的线段所占的目标单元格的宽度和高度、以及所述起点和终点各自的位置标识,计算所述线段的长度和角度;根据所述线段的所述长度和所述角度,生成斜线,并将所述斜线定位到所述表头单元格中。
6.第二方面,本发明提供一种表头斜线的配置式绘制装置,包括:配置模块,用于对待处理表格进行起点配置和终点配置,获得点对集合;其中,所述待处理表格为空表格,所述点对集合中包含至少一个点对,所述点对内包含一个起点的位置标识和一个终点的位置标识;确定模块,用于对待处理表格进行数据渲染,并确定渲染后的所述待处理表格中,表头单元格的高度信息和宽度信息、以及所述点对内所述起点和所述终点之间的线段所占的目标单元格的宽度和高度;所述确定模块,还用于针对所述点对,基于所述起点和所述终点之间的线段所占
的目标单元格的宽度和高度、以及所述起点和终点各自的位置标识,计算所述线段的长度和角度;绘制模块,用于根据所述线段的所述长度和所述角度,生成斜线,并将所述斜线定位到所述表头单元格中。
7.第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现第一方面所述的方法。
8.第四方面,本发明提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
9.本发明的提供一种表头斜线的配置式绘制方法、装置、电子设备及存储介质,包括:首先对空的待处理表格进行起点配置和终点配置,得到至少一个点对,并确定该点对内的起点和终点之间的线段所占的目标单元格,然后对待处理表格进行数据渲染后确定待处理表格的表头单元格的宽度信息和高度信息,最终可以集合高度信息、宽度信息以及点对内的起点和终点各自的位置标识、点对内起点和终点之间的线段所占的目标单元格,确定该点对内起点和终点之间的线段的长度和角度,最终基于得到的线段长度和角度进行斜线绘制,本发明先配置斜线的起点和终点,然后基于动态获取的表头单元格的宽度,精准的计算斜线的长度和角度后进行斜线绘制,整个过程不再受单元格宽高限制,可以保证动态表格在不同数据下都可以正常兼容斜线配置,不用再来回修改单元格的样式,减少了一些人工成本方面的消耗。
附图说明
10.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
11.图1为本发明实施例提供的电子设备的结构框图;图2为本发明实施例提供的表头斜线的配置式绘制方法的示意性流程图;图3为本发明实施例提供的一种待处理表格的示意图;图4为本发明实施例提供的步骤s201的示意性流程图;图5为本发明实施例提供的不同待处理单元格的示意图;图6为本发明实施例提供的步骤s202的示意性流程图;图7为本发明实施例提供的步骤s203的示意性流程图;图8为本发明实施例提供的直角三角形的示意图;图9为本发明实施例提供的效果示意图;图10为本发明实施例提供的表头斜线的配置式绘制装置的功能模块图。
具体实施方式
12.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
13.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
14.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
15.在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
16.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
17.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
18.在日常工作中,需要做大量的表格,这些表格中,有许多表格都需要用斜线表头来表达表格的内容,不论是在静态表格中,还是在动态表格中,设表头斜线均是一件非常常见的操作。
19.实现表头单元格斜线绘制的方法有如下常见的几种:(1)可以设置单元格的背景图片,在背景图片中预设好需要设置的斜线,然后将背景图片叠加到单元格上面,从而实现单元格的斜线绘制;(2)在单元格中添加一个块级标签,设置标签相邻的两个边框线的样式,使其左边框线的宽度和单元格的宽度相等、上边框线的宽度和单元格的高度相等,以此拼接处两个斜线区域。
20.(3)通过css3的画布标签canvas,在画布上绘制所要的斜线。
21.(4)通过编写javascript方法,传入需要绘制的斜线的起始点坐标,然后逐点连接,最终形成一条斜线。
22.(5)在单元格中添加一个只有1像素高的块级标签,通过css3的转换transform属性,旋转得到一个斜线。
23.经过研究发现,现有的斜线绘制方法,大部分只适用于做静态表格,即已知单元格的固定单元格的宽度和高度,静态设置单元格的斜线,并且代码的可复用性差,每一条斜线都需要单独计算,并设置在样式中。当表格的表头内容在设置斜线前是未知的,即获取数据之后,才能知道单元格的具体内容,或者当单元格的内容和宽度稍微有点变化时,必须重新去修改斜线的样式,否则将会出现斜线位置和角度错乱的问题。
24.为了解决上述问题,本发明实施例提供了一种表头斜线的配置式绘制方法,通过提前将斜线的起始点坐标配置好,再渲染表格时自动读取配置的内容,再根据动态获取表格表头的行高和列宽,精准的计算出斜线的长度和旋转角度,及时准确的绘制单元格斜线,让单元格的斜线不再受单元格宽高的限制。并进行定位处理,保证斜线与单元格的边框线贴合显示,浑然一体。该方法可以保证动态表格在不同数据下都可以正常兼容斜线配置,不
用再来回修改单元格的样式,减少了一些人工成本方面的消耗。
25.请参见图1,图1为本发明实施例提供的电子设备的结构框图,该电子设备可以用来执行本发明实施例提供的表头斜线的配置式绘制方法,该电子设备可以但不限于是计算机、平板电脑、手机等。
26.如图1所示,电子设备100可以包括:存储器101、处理器102、通信接口103、和总线104,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
27.可选的,总线104可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
28.在本发明实施例中,处理器102可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器101中,处理器102读取存储器101中的程序指令,结合其硬件完成上述方法的步骤。
29.在本发明实施例中,存储器101可以是非易失性存储器,比如硬盘(hard diskdrive,hdd)或固态硬盘(solid-state drive,ssd)等,还可以是易失性存储器(volatilememory),例如ram。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令和/或数据。
30.存储器101可用于存储软件程序及模块,如本发明实施例提供的表头斜线的配置式绘制装置300的指令/模块,可以软件或固件(firmware)的形式存储于存储器101中或固化在电子设备100 的操作系统(operating system,os)中,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
31.下面以图1中的电子设备为执行主体,对本发明实施例提供的表头斜线的配置式绘制方法进行详细介绍,请参见图2,图2为本发明实施例提供的表头斜线的配置式绘制方法的示意性流程图,该方法可以包括如下步骤:s201、对待处理表格进行起点配置和终点配置,获得点对集合。
32.其中,点对集合中包含至少一个点对,点对内包含一个起点的位置标识和一个终点的位置标识。
33.s202、对待处理表格进行数据渲染,并确定渲染后的待处理表格中,表头单元格的高度信息和宽度信息、以及点对内起点和终点之间的线段所占的目标单元格的宽度和高度。
34.s203、针对该点对,基于起点和终点之间的线段所占的目标单元格的宽度和高度、
以及起点和终点各自的位置标识,计算线段的长度和角度。
35.s204、根据线段的长度和角度,生成斜线,并将斜线定位到表头单元格中。
36.在上述提供的表头斜线的配置式绘制方法中,首先对空的待处理表格进行起点配置和终点配置,得到至少一个点对,并确定该点对内的起点和终点之间的线段所占的目标单元格,然后对待处理表格进行数据渲染后确定待处理表格的表头单元格的宽度信息和高度信息,最终可以集合高度信息、宽度信息以及点对内的起点和终点各自的位置标识、点对内起点和终点之间的线段所占的目标单元格,确定该点对内起点和终点之间的线段的长度和角度,最终基于得到的线段长度和角度进行斜线绘制,本发明先配置斜线的起点和终点,然后基于动态获取的表头单元格的宽度,精准的计算斜线的长度和角度后进行斜线绘制,整个过程不再受单元格宽高限制,可以保证动态表格在不同数据下都可以正常兼容斜线配置,不用再来回修改单元格的样式,减少了一些人工成本方面的消耗。
37.下面对上述步骤s201至步骤s204进行详细介绍。
38.在步骤s201中、对待处理表格进行起点配置和终点配置,获得点对集合。
39.本发明实施例中,待处理表格是一个空表格,且属于动态表格,表格内容并不是固定状态,待处理表格的单元格的宽度信息和高度信息可以基于数据渲染结果动态改变,如图3所示,图3为本发明实施例提供的一种待处理表格的示意图,可见该待处理表格的表头单元格是由两行两列个单元格合并而成。
40.本发明实施例中,对待处理表格进行起点配置和终点配置目的是为了固定斜线起点和斜线终点,那么即使待处理表格的单元格的宽度和高度被更改,也可以基于预先配置的斜线起点和斜线终点,动态计算斜线的长度和旋转角度,保证动态表格在不同数据下都可以正常兼容斜线配置。
41.因此,针对上述步骤s201,本发明实施例给出一种实现方式,请参见图4,图4为本发明实施例提供的步骤s201的示意性流程图,步骤s201可以包括:s201-1,以表头单元格的左上角为坐标原点,以上边框线为横坐标、左边框线为纵坐标,构建坐标系。
42.s201-2,当表头单元格为单个单元格,将坐标原点作为起点,并从表头单元格的右边框线和下边框线各自的中点、以及右边框线分别与上边框线和下边框线的交点中,确定至少一个终点。
43.s201-3,当表头单元格由至少两个单元格合并而成,从坐标原点、上边框线和左边框线上各自的单元格交叉点中,确定至少一个起点、并从右边框线和下边框线各自的中点、右边框线分别与上边框线和下边框线的交点、右边框线和下边框线上各自的单元格交叉点中,确定至少一个终点。
44.s201-4,确定每个起点和每个终点在坐标系中的位置标识,并将起点和终点进行两两组合,得到至少一个点对,并基于点对组成点对集合。
45.为了方便理解上述实施方式,请参见图5,图5为本发明实施例提供的不同待处理单元格的示意图,其中,图5中的(a)为表头单元格为单个单元格的情况,图5中的(b)为表头单元格由至少两个单元格合并而成的情况。
46.由于需要确定起点和终点的位置标识,因此首先以表头单元格的左上角为坐标原点,以上边框线为横坐标、左边框线为纵坐标,构建坐标系,如图5所示,其中坐标(0,0)即为
坐标原点。
47.针对图5中的(a),其中坐标原点(0,0)设置为起点,右边框线和左边框线上的中点(5,5)、(5,10)以及右边框线分别与上边框线和下边框线的交点(10,0)和(10,10)中的至少一个点可以被确定为终点。
48.针对图5中的(b),其中,坐标原点(0,0)、上边框线上的单元格交出点(10,0)和左边框线上的单元格交点(0,10)中的至少一个点可以被确定为终点为起点,终点设置同图5中的(a)类似,此处不再赘述。
49.在本技术实施例中,起点和终点和位置标识并不是真实的位置坐标,而是单元格为单位进行设置,用以区分每个点之间的间隔的单元格数量。
50.如图5所示,假设一个单元格的单位1,半个单元格的单位为0.5,所以图5中的(a),由于表头单元格是单个单元格,那么针对右边框线上的终点,横坐标均是1(表示1个单元),即位置标识为1,纵坐标依次为0,0.5,1,以此类推,可以确定下边框线上的终点的位置标识。图5中的(b)上的起点和终点的位置标识同图5中的(a)类似,此处不再赘述。
51.在另一种实施方式,还可以对上述位置标识进行整倍数扩大,以方便数据处理,例如图5中的(a),终点的横坐标可以为10(即1个单元格的10倍),纵坐标依次为0,5,10,本发明实施例后续将以此种表示方式进行介绍。
52.可以理解的是,上述位置标识的表达方式可以辅助后续确定起点和终点之间的斜线所占的目标单元格数量,最终可以结合获取的单元格的实际宽度信息和高度信息,精准计算斜线的长度和旋转角度。
53.在设置了起点和终点之后,即可将起点和终点进行两两组合,得到至少一个点对,并将该点对内起点的位置标识和终点的位置标识进行组合,得到点对集合。
54.例如,继续参见图5的(a),只有一个起点(0,0),那么终点可以为:(5,10)、(5,10)和(5,10)中的至少一个,假设若用户期望在(0,0)和(5,10)之间绘制一条斜线,则可以将终点(5,10)作为和起点(0,0)进行组合的得到点对为:[{startid: '0-0', endid: '5-10'}],其中,startid表征起点,endid表征终点。
[0055]
可以看出,在生成点对的过程中,上边框线和左边框线上可以存在至少一个备选点,那么用户可以基于实际绘制斜线的需求,从备选起点中确定哪些点作为组成点对的起点,同理,右边框线和下边框线上可以存在至少一个备选点,用户也可以基于实际需求从这些备选点中确定哪些点作为组成点对的终点。
[0056]
在获得点对集合之后,即可执行步骤s202来动态获取表头单元格的宽度信息和高度信息、以及每个起点和终点之间的线段所占的目标单元格的。
[0057]
在步骤s202中、对待处理表格进行数据渲染,并确定渲染后的待处理表格中,表头单元格的高度信息和宽度信息、以及点对内起点和终点之间的线段所占的目标单元格的宽度和高度。
[0058]
在本技术实施例中,由于本发明实施例的位置标识是以单元格为单位的,因此针对每个点对,可以基于起点的位置标识和终点的位置标识,确定起点和终点之间的线段在水平方向上所占的横向单元格、和在竖直方向上所占的竖向单元格,进而可以从预先确定的宽度集合中确定所占的横向单元格的宽度、以及从预先确定的高度集合中确定所占的竖向单元格的高度。
[0059]
可以理解的是,获取的目标单元格的宽度和高度为后续计算斜线在水平方向和竖直方向上的投影长度提供依据。
[0060]
因此,针对上述步骤s202,本发明实施例给出了一种实现方式,请参见图6,图6为本发明实施例提供的步骤s202的示意性流程图:s202-1,确定表头单元格对应的宽度集合和高度集合;本技术实施例中,宽度集合包含表头单元格所包含的每个单元格的宽度,高度集合包含表头单元格所包含的每个单元格的高度,数值之间的顺序可以表征单元格之间的顺序,在获取宽度集合的过程中,从表头单元格的左上角开始,沿远离左边框线的水平方向依次获取每个单元格的宽度,组成宽度集合,同理,获取高度集合的过程中,从表头单元格的左上角开始,沿远离上边框线的方向依次获取每个单元格的高度,组成高度集合。
[0061]
针对表头单元格是单个单元格的情况,目标单元格即为表头单元格,直接获取单元格的宽度信息和高度信息即可,例如,继续参见图5中的(a),假设表头单元格的宽度为8,高度为4,那么获得的宽度信息可以表示为[0],高度信息表示为[4]。
[0062]
针对表头单元格由至少两个单元格合并而成的情况,可以表头单元格的左上角为起点,依次获取每个横向单元格的宽度,依次获取每个竖向单元格的高度,假设表头单元格是由n行m列个单元格合并合成,那么宽度集合和高度集合可以分别表示为:[w1,w2,

wm],[h1,h2,
…hn
],宽度集合中的数值顺序与表头单元格所包含的横向单元格的顺序一致,比如w1对应第一个横向单元格的宽度,wn对应第n个横向单元格的宽度。
[0063]
例如,继续参见图5的(b),可以看出表头单元格是由2行2列单元格合并而成,那么可以表头单元格的左上角为起点,依次获取每个横向单元格的宽度集合[w1,w2],依次获取每个竖向单元格的高度集合[h1,h2]。
[0064]
可以看出,针对由多个单元格合并而成的表头单元格,基于获取宽度集合和高度集合,由于宽度集合和高度集合中,数值之间的顺序可以表征单元格之间的顺序,那么在确定了目标单元格之后,基于目标单元格与其他单元格之间的顺序,可以直接从宽度集合中提取宽度,以及从高度集合中提取高度。
[0065]
s202-2,当表头单元格为单个单元格,确定目标单元格为表头单元格,目标单元格的宽度和高度分别为表头单元格的宽度和高度。
[0066]
例如,继续参见图5中的(a),可见所有的斜线均在表头单元格内,所以将目标单元格确定为表头单元格,此时,目标单元格的宽度和高度即为表头单元格的宽度和高度。
[0067]
s202-3,当表头单元格由至少两个单元格合并而成,确定该点对内,该线段所占的横向单元格和竖向单元格为目标单元格、并从宽度集合提取横向单元格的宽度,以及从高度集合中提取竖向单元格的高度。
[0068]
在实际情况中,一些斜线可能跨越多个单元格,那么在确定斜线长度的过程中,需要先确定该斜线所跨越的单元格,然后基于这些被跨越的单元格的实际宽度和实际高度可以精准计算斜线的长度和角度。
[0069]
例如,继续参见图5中的(a),起点和终点之间的线段所占的单元格只有表头单元格;继续参见图5中的(b),部分起点和终点之间的线段跨越了不同的单元格,此时可以分别确定线段所占的横向单元格和竖向单元格,然后从宽度集合中提取横向单元格宽度、并从高度集合中提取竖向单元格的高度。
[0070]
因此,针对上述步骤s202-3,可以按照如下方式执行:a1:针对该点对,基于起点和终点各自的位置标识,确定起点和终点间隔的第一单元格数量和第二单元格数量。
[0071]
本实施例中,位置标识可以表征每个点之间相间隔的单元格数量,因此,在每个点对中,起点和终点各自的位置标识可以确定起点和终点间隔的单元格数量,作为一种实现方式,起点和终点各自的横向位置标识之差即为第一单元格数量,起点和终点各自的竖向位置标识之差即为第二单元格数量。
[0072]
例如,继续参见图5中的(b),点对{startid: '10-0', endid: '20-10'}为例,横向位置标识之差为20-10=10,10代表1个单元格,间隔的第一单元格数量为1,竖向位置标识之差为10-0=10,间隔的第二单元格数量为1。
[0073]
a2:从起点所在位置开始,沿远离左边框线的水平方向依次确定出与第一单元格数量一致的单元格为横向单元格,沿远离上框线的竖直方向依次确定出与第二单元格数量一致的单元格为竖向单元格。
[0074]
本实施例中,在确定起点和终点间隔的第一单元格数量和第二单元格数量之后,即可从表头单元格包含的横向单元格中,确定出与第一单元格数量一致的单元格为横向单元格,确定出与第二单元格数量一致的单元格为竖向单元格,具体地,需要首先以起点为起始位置,沿远离上边框线的方向,按照竖直方向上单元格的顺序来确定竖向单元格,沿远离左边框线的水平方向,按照水平方向上单元格的顺序来确定横向单元格。
[0075]
作为可选的实施方式,在确定横向单元格的过程中,可以确定线段所占的横向单元格在全部横向单元格中的顺序信息,这样可以基于顺序信息,从宽度集合中直接获取对应的宽度,竖向单元格类似,此处不再赘述。
[0076]
a3:按照横向单元格的顺序,将宽度集合中对应横向单元格的顺序上的宽度,作为横向单元格的宽度,并按照竖向单元格顺序,将高度集合中对应竖向单元格顺序的高度,作为竖向单元格的高度。
[0077]
由于宽度集合和高度集合中的数值顺序可以表征单元格的顺序,那么可以按照确定的横向单元格的顺序,从宽度集合中确定对应顺序上的宽度为该横向单元格的宽度,竖向单元格类似,此处不再赘述。
[0078]
例如,表头单元格是由两行三列单元格合并而成,那么将第一行单元格作为表头单元格全部横向单元格,第一列单元格作为表头单元格全部竖向单元格,那么线段所占的横向单元格可能是第一个横向单元格,对应的宽度为宽度集合中的第一个数值。
[0079]
为了方便理解,继续参见图5中的(b),点对{startid: '10-0', endid: '20-10'}为例,表头单元格包含两行两列单个元格,宽度集合为表头单元格第一行单元格各自对应的高度,即[w1,w2],高度集合为表头单元格第一列单元格各自对应的高度,即[h1,h2],针对(10,0)和(20,10)之间的线段,其所占的横向单元格为第2个横向单元格,所以横向单元格的宽度为宽度集合中第2个宽度w1,所占的竖向单元格为第1个竖向单元格,所以竖向单元格的高度为高度集合中第1个高度h1。
[0080]
在步骤s203中、针对该点对,基于起点和终点之间的线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,计算线段的长度和角度。
[0081]
本发明实施例中,针对点对内起点和终点之间的线段,可以将该线段所占的单元
格的宽作为横向直角边,并以所占的单元格的高作为竖向直角边,该斜线作为斜边,构建直角三角形,然后基于所占的单元格的实际宽度和实际高度,得到横向直角边和竖向直角边的长度,并基于勾股定理可以计算出线段的长度。
[0082]
因此,本发明实施例给出了一种步骤s203的实施方式,请参见图7,图7为本发明实施例提供的步骤s203的示意性流程图,步骤s203可以包括:s203-1,基于线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,确定该线段的水平投影长度和垂直投影长度。
[0083]
本技术实施例中,由于下边框线和右边框线上的中点和交点被配置为终点,这导致线段可能只占半个单元格,那么在确定水平投影长度时,需要基于起点和终点各自的位置标识,确定以所占单元格的整个宽度还是半个宽度来计算水平投影长度,垂直投影长度同理。
[0084]
为了方便理解,请继续参见图5中的(a)和(b):针对图5中的(a),点对{startid: '0-0', endid: '5-10'}为例,假设表头单元格的宽为8,高为5,(0,0)和(5,10)之间的线段所占的单元格为表头单元格,其中横向位置标识之差为5,小于1个单元格,则将所占横向单元格的宽度的一半作为水平投影长度,即4,竖向位置标识之差为10,等于1个单元格,则将所占竖向单元格的高度作为垂直投影长度,即5,因此,(0,0)和(5,10)之间的线段的长度为: = 6.40。
[0085]
针对图5中的(b),点对{startid: '0-0', endid: '15-20'}为例,假设表头单元格的宽度集合为[8,4],高度集合为[6,6], (0,0)和(15,20)之间的线段所占2个横向单元格,宽度为[8,4]和2个竖向单元格,高度为[6,6],其中,横向位置标识之差为15,大于1个单元格且小于2个单元格,则将所占的最后一个横向单元格的宽度的一半以及全部其他横向单元格的宽度之和,作为水平投影长度,即最后一个横向单元格的宽度的一半为2,其他横向单元格的宽度为8,那么水平投影长度为8+2=10,竖向位置标识之差为20,为2个单元格,等于2个单元格,则将所占竖向单元格的高度之和作为垂直投影长度,即6+6=12,那么(0,0)和(15,20)之间的线段的长度为: =15.62。
[0086]
s203-2,根据水平投影长度和垂直投影长度,计算该线段的长度,并基于水平投影长度和该线段的长度,确定该线段的角度,或者,基于垂直投影长度和该线段的长度,确定该线段的角度。
[0087]
由于线段和水平投影长度以及垂直投影长度之间可以构建直角三角形,如图8所示,图8为本发明实施例提供的一种直角三角形的示意图,根据反三角函数角a的度数为 math.asin(bc/ac) * 180 / math.pi,其中,ac为直角三角形的斜边,对应本发明实施例中起点和终点之间的线段,bc为ac在水平方向上的投影,即为本发明实施例中线段的水平投影长度,根据上述公式可以计算ac和ab之间的夹角,即线段对应的角度,同理,也可以根据反三角函数角a的度数为 math.acos (ab/ac) * 180 / math.pi,计算上述角度,其中,ab为线段的垂直投影长度。
[0088]
在步骤s204中、针对每个点对,基于起点和终点之间的线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,计算线段的长度和角度。
[0089]
在本技术实施例中,确定每个点对内起点和终点之间的线段长度之后,即可生成
与该线段长度一致的线段,然后基于确定的角度,对生成的线段进行旋转处理,然后确定旋转后得到的斜线的位移,从而完成斜线定位。
[0090]
因此,上述步骤s203的实施方式可以如下:d1:基于该长度,生成线段,并将该线段基于点对内的起点,沿逆时针旋转该角度,得到斜线;d2:根据点对内的起点的位置标识,确定斜线相对于表格单元格左上角的位移长度,并将斜线从左上角移动该位移长度。
[0091]
在实际实施过程中,可以先设置表头单元格的样式,定位方式为相对定位,然后设置斜线基于起始点旋转对应角度,并设置定位方式为绝对定位,确定斜线起始点的位移之后,即可将斜线从左上角开始移动,从而完成斜线的绘制,最终绘制的表格可以如图9所示,图9为本发明实施例提供的效果示意图。
[0092]
可以理解的是,点对集合中有多少个点对,则可以对应绘制出与点对数量一致的多条斜线。
[0093]
在可选地实施方式,当待处理表格中的数据被更新,基于更新后的表头单元格的高度信息和宽度信息,更新点对对应的线段的长度和角度,然后根据更新后的每个点对对应的线段的长度和角度,对斜线进行调整,可以保证动态表格在不同数据下都可以正常兼容斜线配置。
[0094]
基于相同的发明构思,本发明实施例还提供了一种表头斜线的配置式绘制装置,请参见图10,图10为本发明实施例提供的表头斜线的配置式绘制装置的功能模块图,该表头斜线的配置式绘制装置300可以以软件或固件(firmware)的形式存储于电子设备100的操作系统(operating system,os)中。
[0095]
该表头斜线的配置式绘制装置300可以:配置模块310、确定模块320和绘制模块330。
[0096]
配置模块310,用于对待处理表格进行起点配置和终点配置,获得点对集合;其中,待处理表格为空表格,点对集合中包含至少一个点对,点对内包含一个起点的位置标识和一个终点的位置标识;确定模块320,用于对待处理表格进行数据渲染,并确定渲染后的待处理表格中,表头单元格的高度信息和宽度信息、以及点对内起点和终点之间的线段所占的目标单元格的宽度和高度;确定模块320,还用于针对点对,基于起点和终点之间的线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,计算线段的长度和角度;绘制模块330,用于根据线段的长度和角度,生成斜线,并将斜线定位到表头单元格中。
[0097]
可以理解的是,配置模块310、确定模块320和绘制模块330可以协同的执行图2中的各个步骤以实现相应的技术效果。
[0098]
在可选地实施方式中,配置模块310,用于以表头单元格的左上角为坐标原点,以上边框线为横坐标轴、左边框线为纵坐标轴,构建坐标系;当表头单元格为单个单元格,将坐标原点作为起点,并从表头单元格的右边框线和下边框线各自的中点、以及右边框线分别与上边框线和下边框线的交点中,确定至少一个终点;当表头单元格由至少两个单元格
合并而成,从坐标原点、上边框线和左边框线上各自的单元格交叉点中,确定至少一个起点、并从右边框线和下边框线各自的中点、右边框线分别与上边框线和下边框线的交点、右边框线和下边框线上各自的单元格交叉点中,确定至少一个终点;确定每个起点和每个终点在坐标系中的位置标识,并将起点和终点进行两两组合,得到至少一个点对,并基于点对组成点对集合。
[0099]
在可选地实施方式中,确定模块330,用于确定表头单元格对应的宽度集合和高度集合;当表头单元格为单个单元格,确定目标单元格为表头单元格,目标单元格的宽度和高度分别为表头单元格的宽度和高度;当表头单元格由至少两个单元格合并而成,确定点对内,线段所占的横向单元格和竖向单元格为目标单元格、并从宽度集合提取横向单元格的宽度,以及从高度集合中提取竖向单元格的高度。
[0100]
在可选地实施方式中,确定模块330,用于针对点对,基于起点和终点各自的位置标识,确定起点和终点间隔的第一单元格数量和第二单元格数量;从起点所在位置开始,沿远离左边框线的水平方向依次确定出与第一单元格数量一致的单元格为横向单元格,沿远离上框线的竖直方向依次确定出与第二单元格数量一致的单元格为竖向单元格;按照横向单元格的顺序,将宽度集合中对应横向单元格的顺序上的宽度,作为横向单元格的宽度,并按照竖向单元格顺序,将高度集合中对应竖向单元格顺序的高度,作为竖向单元格的高度。
[0101]
在可选地实施方式中,确定模块330,用于基于线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,确定起点和终点之间的线段的水平投影长度和垂直投影长度;根据水平投影长度和垂直投影长度,计算长度,并基于水平投影长度和线段的长度,确定角度,或者,基于垂直投影长度和线段的长度,确定线段的角度。
[0102]
在可选地实施方式中,绘制模块330,用于基于长度,生成线段,并将线段基于点对内的起点,沿逆时针旋转角度,得到斜线;根据点对内的起点的位置标识,确定斜线相对于表头单元格左上角的位移长度,并将斜线从左上角移动位移长度。
[0103]
在可选地实施方式中,该表头斜线的配置式绘制装置300可以包括调整模块,用于当待处理表格中的数据被更新,基于更新后的表头单元格的高度信息和宽度信息,更新点对对应的线段的长度和角度;根据更新后的点对对应的线段的长度和角度,对斜线进行调整。
[0104]
基于以上实施例,本技术还提供了一种存储介质,存储介质中存储有计算机程序,计算机程序被计算机执行时,使得计算机执行以上实施例提供的表头斜线的配置式绘制方法。
[0105]
基于以上实施例,本技术实施例还提供了一种计算机程序,当计算机程序在计算机上运行时,使得计算机执行以上实施例提供的表头斜线的配置式绘制方法。
[0106]
基于以上实施例,本技术实施例还提供了一种芯片,芯片用于读取存储器中存储的计算机程序,用于执行以上实施例提供的表头斜线的配置式绘制方法。
[0107]
本技术实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的表头斜线的配置式绘制方法。
[0108]
本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计
算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0109]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0110]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0111]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术特征:


1.一种表头斜线的配置式绘制方法,其特征在于,所述方法包括:对待处理表格进行起点配置和终点配置,获得点对集合;其中,所述待处理表格为空表格,所述点对集合中包含至少一个点对,所述点对内包含一个起点的位置标识和一个终点的位置标识;对待处理表格进行数据渲染,并确定渲染后的所述待处理表格中,表头单元格的高度信息和宽度信息、以及所述点对内所述起点和所述终点之间的线段所占的目标单元格的宽度和高度;针对所述点对,基于所述起点和所述终点之间的线段所占的目标单元格的宽度和高度、以及所述起点和所述终点各自的所述位置标识,计算所述线段的长度和角度;根据所述线段的所述长度和所述角度,生成斜线,并将所述斜线定位到所述表头单元格中。2.根据权利要求1所述的方法,其特征在于,对待处理表格进行起点配置和终点配置,获得点对集合,所述方法还包括:以所述表头单元格的左上角为坐标原点,以上边框线为横坐标轴、左边框线为纵坐标轴,构建坐标系;当所述表头单元格为单个单元格,将所述坐标原点作为所述起点,并从所述表头单元格的右边框线和下边框线各自的中点、以及所述右边框线分别与所述上边框线和所述下边框线的交点中,确定至少一个所述终点;当所述表头单元格由至少两个单元格合并而成,从所述坐标原点、所述上边框线和所述左边框线上各自的单元格交叉点中,确定至少一个所述起点、并从所述右边框线和所述下边框线各自的中点、所述右边框线分别与所述上边框线和所述下边框线的交点、所述右边框线和所述下边框线上各自的单元格交叉点中,确定至少一个所述终点;确定每个所述起点和每个所述终点在所述坐标系中的位置标识,并将所述起点和终点进行两两组合,得到至少一个所述点对,并基于所述点对组成所述点对集合。3.根据权利要求1所述的方法,其特征在于,对待处理表格进行数据渲染,并确定渲染后的所述待处理表格中,表头单元格的高度信息和宽度信息、以及所述点对内所述起点和所述终点之间的线段所占的目标单元格的宽度和高度,包括:确定所述表头单元格对应的宽度集合和高度集合;当所述表头单元格为单个单元格,确定所述目标单元格为所述表头单元格,所述目标单元格的宽度和高度分别为所述表头单元格的宽度和高度;当所述表头单元格由至少两个单元格合并而成,确定所述点对内,所述线段所占的横向单元格和竖向单元格为所述目标单元格、并从所述宽度集合提取所述横向单元格的宽度,以及从所述高度集合中提取所述竖向单元格的高度。4.根据权利要求3所述的方法,其特征在于,当所述表头单元格由至少两个单元格合并而成,确定所述点对内,所述线段所占的横向单元格和竖向单元格为所述目标单元格、并从所述宽度集合提取所述横向单元格的宽度,以及从所述高度集合中提取所述竖向单元格的高度,包括:针对所述点对,基于所述起点和所述终点各自的所述位置标识,确定所述起点和所述终点间隔的第一单元格数量和第二单元格数量;
从所述起点所在位置开始,沿远离左边框线的水平方向依次确定出与所述第一单元格数量一致的单元格为所述横向单元格,沿远离上框线的竖直方向依次确定出与所述第二单元格数量一致的单元格为所述竖向单元格;按照所述横向单元格的顺序,将所述宽度集合中对应所述横向单元格的顺序上的宽度,作为所述横向单元格的宽度,并按照所述竖向单元格顺序,将所述高度集合中对应所述竖向单元格顺序的高度,作为所述竖向单元格的高度。5.根据权利要求1所述的方法,其特征在于,针对所述点对,基于所述起点和所述终点之间的线段所占的目标单元格的宽度和高度、以及所述起点和所述终点各自的所述位置标识,计算所述线段的长度和角度,包括:基于所述线段所占的目标单元格的宽度和高度、以及所述起点和终点各自的位置标识,确定所述起点和所述终点之间的线段的水平投影长度和垂直投影长度;根据所述水平投影长度和所述垂直投影长度,计算所述长度,并基于所述水平投影长度和所述线段的所述长度,确定所述角度,或者,基于所述垂直投影长度和所述线段的所述长度,确定所述线段的所述角度。6.根据权利要求1所述的方法,其特征在于,根据所述线段的所述长度和所述角度,生成斜线,并将所述斜线定位到所述表头单元格中,包括:基于所述长度,生成所述线段,并将所述线段基于所述点对内的所述起点,沿逆时针旋转所述角度,得到所述斜线;根据所述点对内的所述起点的所述位置标识,确定所述斜线相对于所述表头单元格左上角的位移长度,并将所述斜线从所述左上角移动所述位移长度。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述待处理表格中的数据被更新,基于更新后的所述表头单元格的高度信息和宽度信息,更新所述点对对应的所述线段的长度和角度;根据更新后的所述点对对应的所述线段的长度和角度,对所述斜线进行调整。8.一种表头斜线的配置式绘制装置,其特征在于,包括:配置模块,用于对待处理表格进行起点配置和终点配置,获得点对集合;其中,所述待处理表格为空表格,所述点对集合中包含至少一个点对,所述点对内包含一个起点的位置标识和一个终点的位置标识;确定模块,用于对待处理表格进行数据渲染,并确定渲染后的所述待处理表格中,表头单元格的高度信息和宽度信息、以及所述点对内所述起点和所述终点之间的线段所占的目标单元格的宽度和高度;所述确定模块,还用于针对所述点对,基于所述起点和所述终点之间的线段所占的目标单元格的宽度和高度、以及所述起点和终点各自的位置标识,计算所述线段的长度和角度;绘制模块,用于根据所述线段的所述长度和所述角度,生成斜线,并将所述斜线定位到所述表头单元格中。9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现权利要求1至7任一项所述的方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。

技术总结


本发明的提供一种表头斜线的配置式绘制方法、装置、电子设备及存储介质,包括:对待处理表格进行起点配置和终点配置,获得点对集合;对待处理表格进行数据渲染,并确定渲染后的待处理表格中,表头单元格的高度信息和宽度信息、以及点对内起点和终点之间的线段所占的目标单元格的宽度和高度;针对该点对,基于起点和终点之间的线段所占的目标单元格的宽度和高度、以及起点和终点各自的位置标识,计算线段的长度和角度;根据每个点对对应的线段的长度和角度,生成斜线,并将斜线定位到表头单元格中,本发明可以保证动态表格在不同数据下都可以正常兼容斜线配置,不用再来回修改单元格的样式,减少了一些人工成本方面的消耗。减少了一些人工成本方面的消耗。减少了一些人工成本方面的消耗。


技术研发人员:

王进 王小通 张培贺 张小林 朱田静

受保护的技术使用者:

宇动源(北京)信息技术有限公司

技术研发日:

2022.11.17

技术公布日:

2022/12/19

本文发布于:2024-09-22 18:17:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/42182.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:单元格   所述   表头   斜线
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议