基于电子表格的应用开发方法、装置、设备及存储介质与流程

文档序号:33173403发布日期:2023-02-04 03:02阅读:34来源:国知局
基于电子表格的应用开发方法、装置、设备及存储介质与流程
基于电子表格的应用开发方法、装置、设备及存储介质
1.交叉引用
2.本技术引用于2021年10月20日递交的名称为“基于表单的应用搭建方法及系统”的第2021112236157号中国专利申请,其通过引用被全部并入本技术。
技术领域
3.本技术涉及计算机开发技术领域,尤其涉及一种基于电子表格的应用开发方法、装置、设备及存储介质。


背景技术:

4.目前,企业通常采用电子表格进行信息收集和数据统计。实际应用中,使用电子表格维护数据,容易出现数据被覆盖、信息泄露、无法追溯填写人以及移动端填写不便等问题。


技术实现要素:

5.本技术的多个方面提供一种基于电子表格的应用开发方法、装置、设备及存储介质,用以实现电子表格应用化,提高了电子表格的数据安全性和可维护性。
6.本技术实施例提供一种基于电子表格的应用开发方法,包括:对电子表格进行文本提取,得到文本数据;根据文本数据对电子表格进行预处理,得到目标表格;识别目标表格的表头区域;从文本数据中获取表头区域关联的至少一个表头字段的字段数据;根据至少一个表头字段的字段数据生成应用程序。
7.本技术实施例还提供一种基于电子表格的应用开发装置,包括:提取模块,用于对电子表格进行文本提取,得到文本数据;预处理模块,用于根据文本数据对电子表格进行预处理,得到目标表格;识别模块,用于识别目标表格的表头区域;获取模块,用于从文本数据中获取表头区域关联的至少一个表头字段的字段数据;生成模块,用于根据至少一个表头字段的字段数据生成应用程序。
8.本技术实施例还提供一种电子设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器耦合至存储器,用于执行计算机程序以用于执行基于电子表格的应用开发方法中的步骤。
9.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器能够实现基于电子表格的应用开发方法中的步骤。
10.在本技术实施例中,依次对电子表格进行文本提取、预处理和表头识别等操作,得到至少一个表头字段的字段数据,基于至少一个表头字段的字段数据进行应用开发。由此,提供一种电子表格应用化的方式,能够有效地应对复杂电子表格的应用化,极大地提高电子表格应用化的开发效率,提高了电子表格的数据安全性和可维护性。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
12.图1为本技术实施例提供的一种示例性的应用场景图;
13.图2为本技术实施例提供的一种基于电子表格的应用开发方法的流程图;
14.图3为示例性的电子表格;
15.图4为图3所示的电子表格对应的应用程序中的一个应用界面;
16.图5为图3所示的电子表格对应的应用程序中的另一个应用界面;
17.图6为图3所示的电子表格对应的应用程序中的另一个应用界面;
18.图7为本技术实施例提供的一种基于电子表格的应用开发装置的结构示意图;
19.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
20.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
21.在本技术的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的访问关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。在本技术的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。此外,在本技术实施例中,“第一”、“第二”、“第三”、“第四”、“第五”以及“第六”只是为了区分不同对象的内容而已,并无其它特殊含义。
22.目前,企业通常采用电子表格进行信息收集和数据统计。实际应用中,使用电子表格维护数据,容易出现数据被覆盖、信息泄露、无法追溯填写人以及移动端填写不便等问题。为此,本技术实施例提供一种基于电子表格的应用开发方法、装置、设备及存储介质。在本技术实施例中,依次对电子表格进行文本提取、预处理和表头识别等操作,得到至少一个表头字段的字段数据,基于至少一个表头字段的字段数据进行应用开发。由此,提供一种电子表格应用化的方式,能够有效地应对复杂电子表格的应用化,极大地提高电子表格应用化的开发效率,提高了电子表格的数据安全性和可维护性。
23.图1为本技术实施例提供的一种示例性的应用场景图。在该应用场景中,可以实现电子表格应用化,用户使用从电子表格转化而来的应用程序(application,app)进行数据管理和维护,能够极大地提高数据安全性和数据的可维护性。具体而言,为了便于理解和区分,将具有电子表格应用化需求的用户称作为第一用户,参见图1中的

所示,第一用户通过终端设备将需要进行应用化的电子表格发送给服务器。参见图1中的

所示,服务器执行文本提取操作,以提取电子表格中的文本数据。文本数据中除了包括电子表格中各个单元格的文本内容,还包括所提取的文本内容对应的单元格在电子表格中的位置信息。在提取到电子表格的文本数据后,参见图1中的

所示,服务器执行预处理操作。具体而言,服务器可以基于所提取的文本数据对电子表格进行切分,以从电子表格中切分出面积最大的内容
块,在图1中,经过内容切分操作,可以找出电子表格中的多个内容块,并从多个内容块中找出面积最大的内容块1。接着,对面积最大的内容块也即内容块1进行裁剪,将裁剪所得的表格称作为目标表格。参见图1中的

所示,服务器在从电子表格中裁剪出目标表格后,识别该目标表格的表头区域,表头区域主要起标识列数据的作用,表头区域中的一个单元格中记录的是该单元格所在列的列标题。例如,针对员工信息表,表头区域的各个单元格依次记录的是:序号、性别、年龄和职位等列标题。为了便于理解和区分,将表头区域关联的字段称作为表头字段。表头字段的字段名称位于表头区域的单元格中,表头字段的字段值位于字段名称所在列的各个单元格中,应理解,表头字段的字段名称也即是指列标题,属于相同列标题的各个字段值组成列数据。在识别出目标表格的表头区域后,根据表头区域在电子表格中的位置信息可以从电子表格的文本数据中获取至少一个表头字段的字段名称和字段值,并分析每个表头字段对应的字段值的数据类型。参见图1中的

所示,服务器将至少一个表头字段的字段数据,提供给低代码开发平台(low-code development platform,lcdp)。参见图1中的

所示,低代码开发平台基于所维护的页面组件库进行应用开发。低代码开发平台是一种无需编码或通过少量代码就可以快速生成应用程序的开发平台。例如,低代码开发平台提供页面组件库,页面组件库中包括大量的页面组件,每个页面组件封装了实现特定功能的源代码。低代码开发平台能够利用一个或多个页面组件生成一个应用程序,进而极大地提高了应用程序的开发效率,降低了针对开发人员的编程能力要求。
24.图1中的



所示,低代码开发平台所开发的应用程序经过服务器提供给第一用户的终端设备。以应用程序由首页面、数据管理页面和表单提交页面组成为例,第一用户在终端设备上打开应用程序,应用程序的首页面显示在终端设备的显示屏幕中,首页面上展示有数据管理页面的入口链接和表单提交页面的入口链接。第一用户触发数据管理页面的入口链接,终端设备显示数据管理页面以供第一用户查看和管理数据。第一用户触发表单提交页面的入口链接,终端设备显示表单提交页面以供第一用户填报和提交数据。在一些应用场景中,参见图1中的

所示,第一用户可以将应用程序推送至多个第二用户,第二用户不同于第一用户。各个第二用户在终端设备上打开应用程序,进入表单提交页面进行数据填写,并在数据填写完毕,触发表单提交页面上的提交控件,以将所填写的数据提交给第一用户的终端设备。参见图1中的

所示,各个第二用户所填写的数据可以同步至数据管理页面中,实现数据汇总,便于数据的维护和管理。
25.在一些应用场景中,例如群聊场景,第一用户可以设置各个第二用户针对应用程序的操作权限,例如,有的第二用户具有查看、分享或修改应用程序中全部页面的权限,有的第二用户仅仅具有查看、分享或修改应用程序中部分页面的权限,有的第二用户仅仅具有查看应用程序中部分页面的权限等等,具体的权限控制可以由第一用户按需设置。
26.在本技术实施例中,终端设备例如包括但不限于手机、平板电脑、笔记本电脑、可穿戴设备、车载设备。服务器例如包括但不限于单个服务器或多个服务器组成的分布式服务器集群。应当理解的是,图1中的服务器和终端设备的数量仅仅是示意性的。图1所示的应用场景仅仅是一种示例,本技术实施例并不限制应用场景。
27.以下结合附图,详细说明本技术各实施例提供的技术方案。
28.图2为本技术实施例提供的一种基于电子表格的应用开发方法的流程图。该方法可以由基于电子表格的应用开发装置执行,该装置可以由软件和/或硬件组成,并一般可以
集成到电子设备中。参见图2,该方法可以包括以下步骤:
29.201、对电子表格进行文本提取,得到文本数据。
30.202、根据文本数据对电子表格进行预处理,得到目标表格。
31.203、识别目标表格的表头区域。
32.204、从文本数据中获取表头区域关联的至少一个表头字段的字段数据。
33.205、根据至少一个表头字段的字段数据生成应用程序。
34.具体而言,电子表格可以是各种类型的表格文档。实际应用中,对电子表格进行文本提取的方式不做限制。例如,可以利用诸如left()、right()、mid()等各种文本提取函数对电子表格进行文本提取。left()函数用于从电子表格包括的文本的左边开始提取指定数目字符。right()用于从电子表格包括的文本的右边开始提取指定数目字符。mid()用于从电子表格包括的文本的指定位置开始提取指定数目的字符。又例如,利用适配的正则表达式对电子表格进行文本提取。又例如,将电子表格转化成图片,利用ocr(optical character recognition,光学字符识别)技术对图片进行处理,以得到电子表格中的文本数据。当然,对电子表格进行文本提取的方式并不限于上述举例,更多介绍可以参见相关技术。
35.值得注意的是,若电子表格包括多个子表格,则针对每个子表格执行步骤201至205。例如,电子表格有多个表格页面,一个表格页面可以认为是电子表格的一个子表格,则针对每个表格页面执行步骤201至205。当然,可以将多个子表格的应用程序集成到一起,组成一个完整的应用程序。
36.在本实施例中,将从电子表格中所提取的文本数据例如包括但不限于:至少一个文本内容,以及每个文本内容所属的单元格在电子表格中的位置信息。考虑到不同用户有不同的制表习惯,使得电子表格呈现多样化特点,进而使得电子表格的复杂程度各有各的不同。例如,有的电子表格较为简单,第一行是表头区域,第一行后面的各行是记录明细数据的明细区域。又例如,有的电子表格较为复杂,电子表格中有标题行、备注行、表头区域、明细区域和记录非明细数据的非明细区域等等。又例如,有的电子表格较为复杂,表头区域、明细区域和非明细区域等进行了单元格合并等,且单元格合并方式各有各的不同。
37.考虑到电子表格的复杂程度各有各的不同,为了降低电子表格应用化的开发难度,对电子表格进行预处理,得到记录明细数据的目标表格,目标表格也可以称作为明细表格。具体而言,在从电子表格中提取出文本数据之后,利用文本数据对电子表格进行切分和裁剪,得到目标表格。通过切分操作可以从电子表格中找出记录明细数据概率较大的表格区域,再对记录明细数据概率较大的表格区域进行进一步裁剪,得到仅仅包括明细数据的表格区域,并将仅仅包括明细数据的表格区域作为目标表格。
38.实际应用中,初始表格中可能也会有一些标题行、备注行或者有合并单元格的行等情况,这些行中记录的数据也不是明细数据,在裁剪过程中需要被裁剪掉,也即被剔除掉。有些初始表格除了记录明细数据还会记录非明细数据,在裁剪过程中将非明细数据所在的行剔除掉。于是,进一步可选的,为了获取更为准确的目标表格,对初始表格进行裁剪,得到目标表格的一种可选实现方式为:识别初始表格中无效区域、非明细区域和明细区域;裁剪初始表格中的无效区域和非明细区域,并将未被裁剪的明细区域作为目标表格。
39.具体而言,无效区域是指有若干个无效行组成的表格区域。考虑到实际应用中,通
常在初始表格的头部,和/或,尾部会存在一些无效行。于是,识别初始表格中无效区域时,可以按照行号从小到大的顺序,和/或,按照行号从大到小的顺序,依次对初始表格中每一行是否为无效行进行识别,直至首次识别到有效行为止;将识别出的至少一个无效行组成的区域确定为无效区域。具体来说,可以从头部开始识别初始表格的无效区域,也即从初始表格的第一行开始,判断第一行是否为无效行,若是,则继续判断第二行是否为无效行,直至找到第一个有效行为止,将第一个有效行之前的各行组成的表格区域确定为无效区域。和/或,可以从尾部开始识别初始表格的无效区域,也即从初始表格的最后一行开始,判断最后一行是否为无效行,若是,则继续判断倒数第二行是否为无效行,直至找到第一个有效行为止,将第一个有效行之后的各行组成的表格区域确定为无效区域。
40.实际应用中,可以按需设置无效行的定义。无效行例如包括但不限于:全部的单元格进行了合并的行、记录标题信息的标题行、记录备注信息的备注行或者记录汇总信息的行,对此不做限定。于是,作为一种示例,依次对初始表格中每一行是否为无效行进行识别,包括:针对待识别的当前行,判断当前行中是否包括备注信息、标题信息或者合并了全部单元格中至少一种;若判断结果为是,则确定当前行是无效行;若判断结果为否,则确定当前行是有效行。
41.在本实施例中,在识别出初始表格中的无效区域后,可以识别初始表格中非明细区域和明细区域。明细区域主要是记录明细数据的表格区域,非明细区域记录的数据也是业务数据,但不是明细数据。参见图3所示的供应商对账单,自上而下依次包括标题行、非明细区域、明细区域和非明细区域。标题行记录的是标题,明细区域记录的是各种明细数据,非明细区域记录的是相关的除明细数据之外的业务数据。
42.实际应用中,可以结合行中是否包括指定符号划分初始表格中非明细区域和明细区域。其中,指定符号是根据实际应用情况灵活设置的,指定符号可能会在第一类区域中,但不会存在于记录明细数据的第二类区域中。指定符号例如可以是冒号:、下划线_、分割符号|等等,但并不以此为限。
43.通常,非明细区域和明细区域的单元格合并模式不太相同,于是,也可以结合相邻两行的单元格合并模式划分初始表格中非明细区域和明细区域。单元格合并模式可以指示对应行中有几个合并单元格,以及合并单元格是对哪几列的单元格进行合并得到的,等等。不同行的单元格合并模式相同,说明的是不同行中的合并单元格个数相同,且合并单元格都是对相同列的单元格进行合并得到的。不同行的单元格合并模式不同,说明的是不同行中的合并单元格个数不同和/或合并单元格不是对相同列的单元格进行合并得到的。
44.基于上述,为了提高非明细区域和明细区域的识别准确度,识别初始表格中非明细区域和明细区域的一种可选实现方式为:针对初始表格中除去无效区域之外第一有效区域,按照行号从小到大的顺序依次遍历第一有效区域中的每一行是否包括指定符号,直至从第一有效区域中确定明细区域的起始行为止;若遍历的当前行包括指定符号,则确定当前行属于非明细区域;若遍历的当前行不包括指定符号,则在当前行与上一行的单元格合并模式相同的情况下,则确定当前行属于非明细区域;在当前行与上一行的单元格合并模式不同的情况下,则确定当前行属于明细区域的起始行,以及将第一有效区域中自明细区域的起始行起的各行确定为明细区域。其中,当前行的上一行的行号小于当前行。值得注意的是,若当前行为第一行,且第一行不包括指定符号,可以默认第一行属于明细区域。
45.具体来说,针对初始表格中除去无效区域之外第一有效区域,从头部开始识别第一有效区域的非明细区域和明细区域。若第一有效区域的第一行有指定符号,则第一行属于非明细区域,并继续判断第二行是否包括指定符号。若第一有效区域的第二行有指定符号,则第二行属于非明细区域。
46.若第一有效区域的第二行没有指定符号,则判断第一行和第二行的单元格合并模式是否相同,若相同,说明第一行和第二行都属于非明细区域。若不同,则说明第一行属于非明细区域,第二行属于明细区域,且第二行是明细区域的起始行。此时,将第一行划分为非明细区域,第二行及其后续行划分为明细区域。依次类推,不断依次遍历第一有效区域中的每一行是否包括指定符号,直至从第一有效区域中确定明细区域的起始行为止。继续以图3为例,首先,遍历由第一行和第二行进行合并得到的合并行,通过语义分析确定合并行中的文本内容为标题行,也即无效行。接着,遍历第三至第六行,由于第三至第六行有冒号:,确定第三至第六行为非明细区域。接着,遍历第7行,由于第7行没有冒号:,且第7行的单元格合并方式与第7行的单元格合并方式不同,确定第7行为明细区域的起始行,并将第7行及其后面各行作为明确区域。
47.实际应用中,在初始表格的尾部可能也有非明细区域,也可能没有非明细区域。例如图3中,明细区域的后面还有非明细区域。于是,为了进一步提高非明细区域和明细区域的识别准确度,将第一有效区域中自明细区域的起始行起的各行确定为明细区域,包括:针对第一有效区域中自明细区域的起始行起的第二有效区域,按照行号从大到小的顺序依次遍历第二有效区域中的每一行是否包括指定符号,直至从第二有效区域中确定明细区域的结束行为止;若遍历的当前行包括指定符号,则确定当前行属于非明细区域;若遍历的当前行不包括指定符号,则在当前行与下一行的单元格合并模式相同的情况下,则确定当前行属于非明细区域;在当前行与下一行的单元格合并模式不同的情况下,则确定当前行属于明细区域的结束行,将第二有效区域中自明细区域的起始行至明细区域的结束行之间的各行确定为明细区域。其中,当前行的下一行的行号大于当前行。值得注意的是,若当前行为倒数第一行,且倒数第一行不包括指定符号,可以默认倒数第一行属于明细区域。
48.具体来说,针对第一有效区域中自明细区域的起始行起的第二有效区域,从尾部开始识别第二有效区域的非明细区域和明细区域。若第二有效区域的最后一行有指定符号,则最后一行属于非明细区域,并继续判断倒数第二行是否包括指定符号。若第二有效区域的倒数第二行没有指定符号,则判断最后一行和倒数第二行的单元格合并模式是否相同,若相同,说明最后一行和倒数第二行都属于非明细区域。若不同,则说明最后一行属于非明细区域,倒数第二行属于明细区域,且倒数第二行是明细区域的结束行。此时,将最后一行划分为非明细区域,倒数第二行及其前面各行划分为明细区域。依次类推,依次遍历第二有效区域中的每一行是否包括指定符号,直至从第二有效区域中确定明细区域的结束行为止。
49.继续以图3为例,首先,遍历由第1行和第2行进行合并得到的合并行,通过语义分析确定合并行中的文本内容为标题行,也即无效行。接着,遍历第3至第6行,由于第三至第六行有冒号:,确定第3至第6行为非明细区域。接着,遍历第7行,由于第7行没有冒号:,且第7行的单元格合并方式与第7行的单元格合并方式不同,确定第7行为明细区域的起始行。至此完成从头部开始遍历的任务,接着开始从尾部开始遍历。由于第17行至14行都有冒号:,
确定第17至第14行为非明细区域。在遍历到第13行时,由于第13行没有冒号:,且第13行的单元格合并方式与第14行的单元格合并方式不同,确定第13行是明细区域的结束行,由此,确定第7至13行是明细区域。
50.在本实施例中,在从电子表格中裁剪出目标表格之后,可以采用以下至少一种方式识别目标表格的表头区域。
51.方式1:采用以合并单元格为识别目标的方式识别目标表格的表头区域。
52.具体而言,可以判断目标表格的第一行中是否包括合并单元格;若第一行中包括合并单元格,则遍历目标表格在第一行后面的每一行是否包括合并单元格,直至首次遍历到不包括合并单元格的行为止;将自第一行起的连续的至少一个包括合并单元格的行,确定为目标表格的表头区域。
53.方式2:采用以序号为识别目标的方式识别目标表格的表头区域。
54.具体而言,可以判断目标表格中是否包括序号列,序号列的列数据为序号;若目标表格中包括序号列,则将序号最小的行的上一行确定为目标表格的表头区域。
55.方式3:采用以相邻的两行之间的相似性为识别目标的方式识别目标表格的表头区域。
56.具体而言,可以依次遍历目标表格中相邻的两行之间是否具有相似性,直至首次遍历到相邻的两行之间不具有相似性为止;将首次遍历到的不具有相似性的相邻的两行中的行号小的行及其前面的至少一行,确定为表头区域。
57.进一步可选的,依次遍历目标表格中相邻的两行之间是否具有相似性,包括:针对当前遍历到的相邻的两行,根据相邻的两行中每一行所包括的至少一个单元格的属性信息,确定相邻的两行中每一行的特征向量,属性信息包括单元格中数据的数据长度或者数据类型;根据相邻的两行各自的特征向量,计算相邻的两行之间的相似度;若相似度大于或等于预设相似度阈值,则确定相邻的两行之间具有相似性;若相似度小于预设相似度阈值,则确定相邻的两行之间不具有相似性。其中,预设相似度阈值可以根据实际应用需求灵活设置。
58.具体而言,在确定每行的特征向量时,基于单元格的属性信息确定每个单元格的一个向量,例如(0,0,1);将各个单元格的向量进行组合,得到该行的特征向量。在计算相邻的两行之间的相似度时,可以基于相邻的两行各自的特征向量计算欧式距离、余弦距离或者曼哈顿距离中任一种距离,并将任一种距离作为相邻的两行之间的相似度。
59.方式4:采用默认方式识别目标表格的表头区域。
60.例如,默认将第一行作为目标表格的表头区域。
61.值得注意的是,实际应用中,可以优先采用方式1、方式2或方式3中一种或多种进行表头区域识别,若通过方式1、方式2或方式3未识别到表头区域,可以再采用方式4识别表头区域。
62.进一步可选的,在识别出目标表格的表头区域后,还可以对表头区域进行校验,例如,去除表头区域中的空白单元格,或者,将表头区域中重复的行去除等等。
63.在本实施例中,在识别出目标表格的表头区域后,从电子表格中的文本数据中获取表头区域关联的至少一个表头字段的字段数据。具体而言,表头字段的字段名称是指记录在表头区域的单元格中文本内容,表头字段的字段值是指记录字段名称的单元格所在列
中各单元格中的文本内容。由于从电子表格中所提取的文本数据包括至少一个文本内容,以及每个文本内容所属的单元格在电子表格中的位置信息,于是,针对表头区域中每个单元格,可以根据该单元格的位置信息查询电子表格的文本数据,获取该单元格中的文本内容,也即该单元格中的字段名称。同时,基于该单元格所在列中其他单元格的位置信息,可以查询电子表格的文本数据获取其他单元格的文本内容,也即字段名称对应的表头字段的字段值。至此,可以从电子表格的文本数据中获取表头区域关联的至少一个表头字段的字段名称和字段值。并对每个表头字段的字段值的数据类型进行分析,数据类型例如包括但不限于:长文本类型、日期类型、数字类型、枚举类型、地址类型以及人员名称类型等等。
64.实际应用中,可以根据至少一个表头字段的字段数据从页面组件库中调用相应的页面组件,基于至少一个页面组件生成应用程序。例如,若表头字段的字段值的数据类型为长文本类型,可以从页面组件库中调用文本输入组件;若表头字段的字段值的数据类型为日期类型,可以从页面组件库中调用日期组件;若表头字段的字段值的数据类型为数字类型,例如身份证号码、手机号码、座机号码等等,则可以从页面组件库中调用文本输入组件。若表头字段的字段值的数据类型为枚举类型,则可以从页面组件库中调用单选框组件、复选框组件或勾选框组件。若表头字段的字段值的数据类型为地址类型,则可以从页面组件库中调用文本输入组件。若表头字段的字段值的数据类型为人员名称类型,则可以从页面组件库中调用单选框组件、复选框组件或勾选框组件。关于哪种数据类型适配哪种页面组件可以灵活匹配。
65.值得注意的是,实际应用中,支持更新页面组件库。用户可以按需开发实现特定功能的新的页面组件并加入页面组件库中,当然,也可以对页面组件库中的已有页面组件进行功能更新等等,对此不做限制。
66.进一步可选的,为了便于用户提交数据和维护管理数据,根据至少一个表头字段的字段数据生成应用程序的实现方式为:从页面组件库中,调用与至少一个表头字段的字段值的数据类型各自匹配的至少一个页面组件,并将至少一个表头字段各自的字段名称分别作为组件名称配置给对应的页面组件,以及根据配置后的至少一个页面组件生成表单提交页面;从页面组件库中,调用列表组件,并将至少一个表头字段的字段数据加载到列表组件中,以得到数据管理页面;至少根据表单提交页面和数据管理页面,生成应用程序。
67.具体而言,表单提交页面用于用户填写和提交数据,用户可以操作表单提交页面上的各个页面组件,完成相应的数据填写,并触发提交所填写的数据。表单提交页面上各个页面组件的页面名称为表头字段的字段名称,用户触发页面组件可以输入对应表头字段的字段值,页面组件的数据输入方式由字段值的数据类型决定。
68.数据管理页面中可以加载各个表头字段的字段数据,以进行数据汇总,也可以加载非明细区域的各个字段的字段数据,也可以是对各个表头字段的字段数据进行统计,加载统计结果,对此不做限制。值得注意的是,当数据管理页面需要加载非明细区域的各个字段的字段数据时,可以根据非明细区域的各个字段的字段值从页面组件库中选择匹配的页面组件,将所选择的页面组件加载到数据管理页面中,并根据对应的字段数据对页面组件进行配置。
69.值得注意的是,在数据管理页面具有数据汇总功能的情况下,用户通过表单提交页面新增的数据可以汇总到数据管理页面中。
70.进一步可选的,还可以在表单提交页面或数据管理页面中设置一些操作类控件,例如,新增控件、删除控件、导入控件、导出控件、更多控件、搜索控件、筛选控件、排序控件等,以提高应用程序的交互友好性。
71.进一步可选的,还可以为应用程序生成首页面,首页面上上展示有数据管理页面的入口链接和表单提交页面的入口链接,以提高应用程序的交互友好性。
72.例如,基于图3所示的供应商对账单所生成的应用程序包括图4所示的首页面,图5所示的“供应商对账单”页面,以及图6所示的“供应商对账单数据管理页面”。用户在终端设备上打开应用程序后,应用程序的首页面显示在终端设备的显示屏幕中,首页面上展示有数据管理页面(也即图6所示的页面)的入口链接和表单提交页面(也即图5所示的页面)的入口链接。用户触发数据管理页面的入口链接,终端设备显示数据管理页面以供用户查看和管理数据。用户触发表单提交页面的入口链接,终端设备显示表单提交页面以供用户填报和提交数据。值得注意的是,图6所示的数据管理页面显示的图3所示的非明细区域中的字段数据。当然,也可以显示图3所示的明细区域中的字段数据。
73.本技术实施例提供的技术方案,依次对电子表格进行文本提取、预处理和表头识别等操作,得到至少一个表头字段的字段数据,基于至少一个表头字段的字段数据进行应用开发。由此,提供一种电子表格应用化的方式,能够有效地应对复杂电子表格的应用化,极大地提高电子表格应用化的开发效率,提高了电子表格的数据安全性和可维护性。
74.图7为本技术实施例提供的一种基于电子表格的应用开发装置的结构示意图。如图7所示,该装置可以包括:提取模块71、预处理模块72、识别模块73、获取模块74和生成模块75;
75.其中,提取模块71,用于对电子表格进行文本提取,得到文本数据;
76.预处理模块72,用于根据文本数据对电子表格进行预处理,得到目标表格;
77.识别模块73,用于识别目标表格的表头区域;
78.获取模块74,用于从文本数据中获取表头区域关联的至少一个表头字段的字段数据;
79.生成模块75,用于根据至少一个表头字段的字段数据生成应用程序。
80.进一步可选的,文本数据包括至少一个文本内容各自所属的单元格在电子表格中的位置信息;相应地,预处理模块72根据文本数据对电子表格进行预处理,得到目标表格时,具体用于:根据至少一个文本内容各自所属的单元格对应的位置信息,确定电子表格中的多个内容块以及每个内容块在电子表格中的位置信息,每个内容块由至少一个包括文本内容的单元格组成;根据每个内容块在电子表格中的位置信息确定每个内容块的面积;从电子表格中切分出面积最大的内容块,并将面积最大的内容块作为初始表格;对初始表格进行裁剪,得到目标表格。
81.进一步可选的,预处理模块72对初始表格进行裁剪,得到目标表格时,具体用于:识别初始表格中无效区域、非明细区域和明细区域;裁剪初始表格中的无效区域和非明细区域,并将未被裁剪的明细区域作为目标表格。
82.进一步可选的,预处理模块72识别初始表格中无效区域时,具体用于:按照行号从小到大的顺序,和/或,按照行号从大到小的顺序,依次对初始表格中每一行是否为无效行进行识别,直至首次识别到有效行为止;将识别出的至少一个无效行组成的区域确定为无
效区域。
83.进一步可选的,预处理模块72依次对初始表格中每一行是否为无效行进行识别时,具体用于:针对待识别的当前行,判断当前行中是否包括备注信息、标题信息或者合并了全部单元格至少一种;若判断结果为是,则确定当前行是无效行;若判断结果为否,则确定当前行是有效行。
84.进一步可选的,预处理模块72识别初始表格中非明细区域和明细区域时,具体用于:针对初始表格中除去无效区域之外第一有效区域,按照行号从小到大的顺序依次遍历第一有效区域中的每一行是否包括指定符号,直至从第一有效区域中确定明细区域的起始行为止;若遍历的当前行包括指定符号,则确定当前行属于非明细区域;若遍历的当前行不包括指定符号,则在当前行与上一行的单元格合并模式相同的情况下,则确定当前行属于非明细区域;在当前行与上一行的单元格合并模式不同的情况下,则确定当前行属于明细区域的起始行,以及将第一有效区域中自明细区域的起始行起的各行确定为明细区域。
85.进一步可选的,预处理模块72将第一有效区域中自明细区域的起始行起的各行确定为明细区域时,具体用于:针对第一有效区域中自明细区域的起始行起的第二有效区域,按照行号从大到小的顺序依次遍历第二有效区域中的每一行是否包括指定符号,直至从第二有效区域中确定明细区域的结束行为止;若遍历的当前行包括指定符号,则确定当前行属于非明细区域;若遍历的当前行不包括指定符号,则在当前行与下一行的单元格合并模式相同的情况下,则确定当前行属于非明细区域;在当前行与下一行的单元格合并模式不同的情况下,则确定当前行属于明细区域的结束行,将第二有效区域中自明细区域的起始行至明细区域的结束行之间的各行确定为明细区域。
86.进一步可选的,识别模块73识别目标表格的表头区域时,具体用于:
87.采用以合并单元格为识别目标的方式识别目标表格的表头区域;和/或,
88.采用以序号为识别目标的方式识别目标表格的表头区域;和/或,
89.采用以相邻的两行之间的相似性为识别目标的方式识别目标表格的表头区域;
90.采用默认方式识别目标表格的表头区域。
91.进一步可选的,识别模块73采用以合并单元格为识别目标的方式识别目标表格的表头区域时,具体用于:判断目标表格的第一行中是否包括合并单元格;若第一行中包括合并单元格,则遍历目标表格在第一行后面的每一行是否包括合并单元格,直至首次遍历到不包括合并单元格的行为止;将自第一行起的连续的至少一个包括合并单元格的行,确定为目标表格的表头区域;或者,
92.识别模块73采用以序号为识别目标的方式识别目标表格的表头区域时,具体用于:
93.判断目标表格中是否包括序号列,序号列的列数据为序号;若目标表格中包括序号列,则将序号最小的行的上一行确定为目标表格的表头区域;或者,
94.识别模块73采用以相邻的两行之间的相似性为识别目标的方式识别目标表格的表头区域时,具体用于:依次遍历目标表格中相邻的两行之间是否具有相似性,直至首次遍历到相邻的两行之间不具有相似性为止;将首次遍历到的不具有相似性的相邻的两行中的行号小的行及其前面的至少一行,确定为表头区域。
95.进一步可选的,识别模块73依次遍历目标表格中相邻的两行之间是否具有相似性
时,具体用于:针对当前遍历到的相邻的两行,根据相邻的两行中每一行所包括的至少一个单元格的属性信息,确定相邻的两行中每一行的特征向量,属性信息包括单元格中数据的数据长度或者数据类型;根据相邻的两行各自的特征向量,计算相邻的两行之间的相似度;若相似度大于或等于预设相似度阈值,则确定相邻的两行之间具有相似性;若相似度小于预设相似度阈值,则确定相邻的两行之间不具有相似性。
96.进一步可选的,字段数据包括:字段名称、字段值以及字段值的数据类型,相应地,生成模块75根据至少一个表头字段的字段数据生成应用程序时,具体用于:从页面组件库中,调用与至少一个表头字段的字段值的数据类型各自匹配的至少一个页面组件,并将至少一个表头字段各自的字段名称分别作为组件名称配置给对应的页面组件,以及根据配置后的至少一个页面组件生成表单提交页面;从页面组件库中,调用列表组件,并将至少一个表头字段的字段数据加载到列表组件中,以得到数据管理页面;至少根据表单提交页面和数据管理页面,生成应用程序。
97.图7所示的装置可以执行图2所示实施例所示的方法,其实现原理和技术效果不再赘述。对于上述实施例中的图7所示的装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
98.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤205的执行主体可以为设备a;又比如,步骤201和203的执行主体可以为设备a,步骤204至步骤205的执行主体可以为设备b;等等。
99.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
100.图8为本技术实施例提供的一种电子设备的结构示意图。如图8所示,该电子设备包括:存储器81和处理器82;
101.存储器81,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
102.存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random-accessmemory,sram),电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom),可擦除可编程只读存储器(erasable programmable read only memory,eprom),可编程只读存储器(programmable read-only memory,prom),只读存储器(read-only memory,rom),磁存储器,快闪存储器,磁盘或光盘。
103.处理器82,与存储器81耦合,用于执行存储器81中的计算机程序,以用于:对电子表格进行文本提取,得到文本数据;根据文本数据对电子表格进行预处理,得到目标表格;识别目标表格的表头区域;从文本数据中获取表头区域关联的至少一个表头字段的字段数
据;根据至少一个表头字段的字段数据生成应用程序。
104.进一步,如图8所示,该电子设备还包括:通信组件83、显示器84、电源组件85、音频组件86等其它组件。图8中仅示意性给出部分组件,并不意味着电子设备只包括图8所示组件。另外,图8中虚线框内的组件为可选组件,而非必选组件,具体可视电子设备的产品形态而定。本实施例的电子设备可以实现为台式电脑、笔记本电脑、智能手机或iot(物联网,internet of things)设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的电子设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图8中虚线框内的组件;若本实施例的电子设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图8中虚线框内的组件。
105.关于处理器执行各动作的详细实施过程可参见前述方法实施例或设备实施例中的相关描述,在此不再赘述。
106.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由电子设备执行的各步骤。
107.相应地,本技术实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中可由电子设备执行的各步骤。
108.上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(near field communication,nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(radio frequency identification,rfid)技术,红外数据协会(the infrared data association,irda)技术,超宽带(ultra wide band,uwb)技术,蓝牙(bluetooth,bt)技术和其他技术来实现。
109.上述显示器包括屏幕,其屏幕可以包括液晶显示器(liquid crystal display,lcd)和触摸面板(touch panel,tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
110.上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
111.上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(microphone,mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
112.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
113.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
114.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
115.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
116.在一个典型的配置中,计算设备包括一个或多个处理器(central processing unit,cpu)、输入/输出接口、网络接口和内存。
117.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(random access memory,ram)和/或非易失性内存等形式,如只读存储器(read only memory,rom)或闪存(flash ram)。内存是计算机可读介质的示例。
118.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变化内存(phase change ram,pram)、静态随机存取存储器(static random-access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)、其他类型的随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(digital versatile disc,dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
119.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
120.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,
本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1