文档生成方法、装置、电子设备及计算机可读存储介质与流程

文档序号:29735043发布日期:2022-04-21 15:44阅读:86来源:国知局
1.本发明涉及计算机
技术领域
:,特别是涉及一种文档生成方法、装置、电子设备及计算机可读存储介质。
背景技术
::2.随着计算机技术的快速发展,用户可以基于电子文档记录信息。例如,医院可以使用word文档统计患者的信息,老师可以使用word文档统计学生的成绩。一种实现方式中,可以在word中添加表格,表格中每一行表示一个对象,每一行包含该对象的多个属性信息。3.相关技术中,由人工将各个对象的属性信息输入至表格,需要耗费较大的人工成本,且会导致word文档的生成效率较低。技术实现要素:4.本发明实施例的目的在于提供一种文档生成方法、装置、电子设备及计算机可读存储介质,提高包含表格的word文档的生成效率,且降低人工成本。5.具体技术方案如下:6.在本发明实施的第一方面,首先提供了一种文档生成方法,所述方法包括:7.获取xml(extensiblemarkuplanguage,可扩展标记语言)格式的第一文档;其中,所述第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的;所述第二文档中记录有循环表达式和结束符;8.将所述第一文档中的循环表达式移动至指定字符区域的上侧,并将所述第一文档中的结束符移动至所述指定字符区域的下侧,得到第三文档;其中,所述指定字符区域表示所述预设表格模板中待填充的空白行;9.基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到最终的第四文档;其中,所述第四文档包含的表格中填充有所述第一数据。10.可选的,所述模板引擎为velocity模板引擎,或,freemarker模板引擎。11.可选的,所述基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到最终的第四文档,包括:12.基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到xml格式的第五文档;所述第五文档包含的表格中填充有所述第一数据;13.将所述第五文档的文档格式修改为word格式,得到word格式的第四文档。14.可选的,所述基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到xml格式的第五文档,包括:15.按照base64格式,对待填充至所述空白行的第一数据中的图片进行编码处理,得到第二数据;16.基于预设的模板引擎,对所述第三文档和所述第二数据进行组合,得到xml格式的第五文档。17.可选的,所述基于预设的模板引擎,对所述第三文档和所述第二数据进行组合,得到xml格式的第五文档,包括:18.基于预设的模板引擎,针对所述第二数据中属于同一行的各属性信息,依次赋值于所述第三文档中指定字符区域中对应的变量,得到xml格式的第五文档。19.可选的,所述获取xml格式的第一文档,包括:20.获取对所述第二文档进行格式转化得到的xml格式的第六文档;21.对所述第六文档进行格式化处理,得到第一文档。22.在本发明实施的第二方面,提供了一种文档生成装置,所述装置包括:23.第一文档获取模块,用于获取可扩展标记语言xml格式的第一文档;其中,所述第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的;所述第二文档中记录有循环表达式和结束符;24.第三文档获取模块,用于将所述第一文档中的循环表达式移动至指定字符区域的上侧,并将所述第一文档中的结束符移动至所述指定字符区域的下侧,得到第三文档;其中,所述指定字符区域表示所述预设表格模板中待填充的空白行;25.第四文档获取模块,用于基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到最终的第四文档;其中,所述第四文档包含的表格中填充有所述第一数据。26.可选的,所述模板引擎为velocity模板引擎,或,freemarker模板引擎。27.可选的,所述第四文档获取模块,包括:28.第五文档获取子模块,用于基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到xml格式的第五文档;所述第五文档包含的表格中填充有所述第一数据;29.第四文档获取子模块,用于将所述第五文档的文档格式修改为word格式,得到word格式的第四文档。30.可选的,所述第五文档获取子模块,包括:31.编码单元,用于按照base64格式,对待填充至所述空白行的第一数据中的图片进行编码处理,得到第二数据;32.第五文档获取单元,用于基于预设的模板引擎,对所述第三文档和所述第二数据进行组合,得到xml格式的第五文档。33.可选的,所述第五文档获取单元,具体用于基于预设的模板引擎,针对所述第二数据中属于同一行的各属性信息,依次赋值于所述第三文档中指定字符区域中对应的变量,得到xml格式的第五文档。34.可选的,所述第一文档获取模块,具体用于获取对所述第二文档进行格式转化得到的xml格式的第六文档;35.对所述第六文档进行格式化处理,得到第一文档。36.本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;37.存储器,用于存放计算机程序;38.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的文档生成方法。39.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的文档生成方法。40.本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的文档生成方法。41.本发明实施例有益效果:42.本发明实施例提供的文档生成方法,可以获取xml格式的第一文档;其中,第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的;第二文档中记录有循环表达式和结束符;将第一文档中的循环表达式移动至指定字符区域的上侧,并将第一文档中的结束符移动至指定字符区域的下侧,得到第三文档;其中,指定字符区域表示预设表格模板中待填充的空白行;基于预设的模板引擎,对第三文档和待填充至空白行的第一数据进行组合,得到最终的第四文档;其中,第四文档包含的表格中填充有第一数据。43.基于上述处理,将循环表达式移动至指定字符区域的上侧,并将结束符移动至指定字符区域的下侧,也就能够基于循环表达式,将第一数据循环填充至各个空白行,进而,能够得到包含的表格中填充有第一数据的第四文档。相对于现有技术中由人工输入信息,本发明实施例的方法由电子设备自动循环对空白行进行赋值,能够提高包含表格的word文档的生成效率,且降低人工成本。44.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。46.图1为本发明实施例提供的一种文档生成方法的流程图;47.图2为本发明实施例提供的另一种文档生成方法的流程图;48.图3为本发明实施例提供的另一种文档生成方法的流程图;49.图4为本发明实施例提供的另一种文档生成方法的流程图;50.图5为本发明实施例提供的一种文档生成装置的结构图;51.图6为本发明实施例提供的一种电子设备的结构图。具体实施方式52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。53.相关技术中,由人工将各个对象的属性信息输入至表格,需要耗费较大的人工成本,且会导致word文档的生成效率较低。54.为了解决上述问题,本发明实施例提供了一种文档生成方法,该方法可以应用于电子设备,该电子设备基于用户提供的数据(本发明实施例中的第一数据,即需要填充至表格中的数据),对word格式的文档中的表格进行填充,得到最终的文档。55.参见图1,图1为本发明实施例提供的一种文档生成方法的流程图,该方法可以包括以下步骤:56.s101:获取xml格式的第一文档。57.其中,第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的。第二文档中记录有循环表达式和结束符。58.s102:将第一文档中的循环表达式移动至指定字符区域的上侧,并将第一文档中的结束符移动至指定字符区域的下侧,得到第三文档。59.其中,指定字符区域表示预设表格模板中待填充的空白行。60.s103:基于预设的模板引擎,对第三文档和待填充至空白行的第一数据进行组合,得到最终的第四文档。61.其中,第四文档包含的表格中填充有第一数据。62.基于本发明实施例提供的文档生成方法,将循环表达式移动至指定字符区域的上侧,并将结束符移动至指定字符区域的下侧,也就能够基于循环表达式,将第一数据循环填充至各个空白行,进而,能够得到包含的表格中填充有第一数据的第四文档。相对于现有技术中由人工输入信息,本发明实施例的方法由电子设备自动循环对空白行进行赋值,能够提高包含表格的word文档的生成效率,且降低人工成本。63.另外,由电子设备自动循环对空白行进行赋值,也能够避免人工输入有误的情况。64.其次,基于本发明实施例提供的方法,用户只需要对第二文档(可以称为模板文档)中的预设表格模板进行调整,即可以实现生成包含不同表格的文档,而不需要对对应的xml格式的文档进行编辑,提高模板文档的可维护性。65.针对步骤s101,预设表格模板可以为用户基于需求设置的。例如,参见表(1)。66.表(1)67.姓名年龄性别职位照片$!emp.name$!emp.age$!emp.sex$!emp.position$!emp.pic68.当用户需要统计公司职员的信息时,用户可以设置如表(1)所示的表格模板。即,针对每一个职员,需要统计该职员的姓名、年龄、性别、职位和照片。69.预设表格模板中还可以记录有每一列属性的属性标识。表(1)中,$!emp.name表示姓名一列的属性标识、$!emp.age表示年龄一列的属性标识,$!emp.sex表示性别一列的属性标识,$!emp.position表示职位一列的属性标识,$!emp.pic表示照片一列的属性标识。70.例如,用户可以通过电脑创建一个word格式的文档,并在该文档中插入表(1)所示的表格,并在表(1)的上方输入“$table_start[#foreach($empin$emps)]”语句,以及在表(1)的下方输入“$table_end[#end]”语句,即,得到第二文档。其中,#foreach($empin$emps)表示循环表达式,#end表示结束符。[0071]然后,用户可以将该第二文档另存为xml格式,电子设备可以基于该xml格式的文档得到第一文档。在一个实施例中,电子设备可以直接将该xml格式的文档,确定为第一文档。[0072]在另一个实施例中,上述步骤s101可以包括以下步骤:[0073]获取对第二文档进行格式转化得到的xml格式的第六文档;对第六文档进行格式化处理,得到第一文档。[0074]在本发明实施例中,用户在将第二文档另存为xml格式,得到xml格式的文档(即第六文档)后,电子设备可以获取到第六文档,并对第六文档进行格式化,得到第一文档。其中,对第六文档进行格式化包括:在第六文档中添加换行符、以及调整第六文档中行的缩进等,以提高第一文档的可读性。[0075]针对步骤s102,电子设备在得到第一文档后,可以对第一文档进行解析,以确定第一文档中的指定字符区域。[0076]一种实现方式中,可以基于第一文档中变量对应的指定字符,确定指定字符区域。例如,若在第一文档中,变量是以指定字符“$”开头,则可以确定第一文档中包含字符“$”的第一个行,以及最后一个包含字符“$”的行,将该第一个行和最后一个行,以及其之间的各行确定为指定字符区域。[0077]循环表达式表示进行循环处理的表达式,将循环表达式移动至指定字符区域的上侧,并将结束符移动至指定字符区域的下侧,也就能够实现对指定字符区域所表示的内容进行循环处理。[0078]例如,第一文档中包含“$table_start[#foreach($empin$emps)]”语句,以及“$table_end[#end]”语句。相应的,电子设备可以从第一文档中获取循环表达式“#foreach($empin$emps)”,以及结束符“#end”。[0079]针对步骤s103,本发明实施例中的模板引擎可以为velocity模板引擎,或,也可以为freemarker模板引擎,但并不限于此。[0080]用户需要填充的第一数据可以记录在指定的数据库中,或者,也可以记录在指定的文档中。第一数据可以以对应的属性标识进行标记,即,电子设备能够确定第一数据中每一个数据的属性。[0081]在一个实施例中,参见图2,在图1的基础上,上述步骤s103可以包括以下步骤:[0082]s1031:基于预设的模板引擎,对第三文档和待填充至空白行的第一数据进行组合,得到xml格式的第五文档。[0083]s1032:将第五文档的文档格式修改为word格式,得到word格式的第四文档。[0084]其中,第五文档包含的表格中填充有第一数据。[0085]第一数据可以包含多行数据,每一行数据包含多个不同属性信息。例如,若预设表格模板为表(1)所示,则第一数据中的每一行数据表示一个职员的信息,包含该职员的姓名、年龄、性别、职位和照片,即,第一数据可以包含多个职员的信息。[0086]在本发明实施例中,电子设备基于模板引擎,可以对第三文档和第一数据进行组合,即,将第一数据填充至预设表格模板的空白行中,得到xml格式的第五文档。虽然第五文档为xml格式,但其仍可基于office应用程序直接打开,且以word文档的形式进行显示。例如,基于office2007以及更高的版本,可以直接以word文档的形式打开xml格式的文档。[0087]另外,为了便于用户对文档进行管理,电子设备还可以将第五文档的后缀名修改为word格式文档的后缀名(例如,.doc),得到word格式的文档(即本发明实施例中的第四文档)。[0088]在一个实施例中,参见图3,在图2的基础上,上述步骤s1031可以包括以下步骤:[0089]s10311:按照base64格式,对待填充至空白行的第一数据中的图片进行编码处理,得到第二数据。[0090]s10312:基于预设的模板引擎,对第三文档和第二数据进行组合,得到xml格式的第五文档。[0091]在本发明实施例中,若第一数据中包含图片,则电子设备可以对图片进行编码,即,将图片转换为字符串,使得word文档能够识别该图片,也就可以得到第二数据。也就是说,在第二数据中,图片是以word文档能够识别的格式存在。例如,可以将每一图片编码为base64格式。[0092]进而,电子设备可以基于模板引擎,对第三文档和第二数据进行组合,得到包含的表格中填充有第一数据的第五文档。[0093]在一个实施例中,参见图4,在图3的基础上,上述步骤s10312可以包括以下步骤:[0094]s103121:基于预设的模板引擎,针对第二数据中属于同一行的各属性信息,依次赋值于第三文档中指定字符区域中对应的变量,得到xml格式的第五文档。[0095]在本发明实施例中,基于模板引擎,针对第二数据中属于同一行的各属性信息,即,针对待填充的同一对象的多个属性信息,可以依次赋值于指定字符区域中对应的变量。也就是说,电子设备可以按照第二数据,对指定字符区域中的变量进行赋值,也就可以实现在空白行中填充对应的第二数据。[0096]在完成指定字符区域中各变量的赋值后,也就可以得到填充有对应的一个对象的属性信息的表格,进而,在基于循环表达式,完成多次循环的赋值后,也就可以在预设表格模板中填充多个对象的属性信息(即第二数据)。[0097]参见表(2),表(2)基于本发明实施例的方法,对包含表(1)的第二文档进行处理,得到的word文档(即第四文档)中显示的表格。[0098]表(2)[0099][0100][0101]基于相同的发明构思,本发明实施例还提供了一种文档生成装置,参见图5,图5为本发明实施例提供的一种文档生成装置的结构图,所述装置包括:[0102]第一文档获取模块501,用于获取可扩展标记语言xml格式的第一文档;其中,所述第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的;第二文档中记录有循环表达式和结束符;[0103]第三文档获取模块502,用于将所述第一文档中的循环表达式移动至指定字符区域的上侧,并将所述第一文档中的结束符移动至所述指定字符区域的下侧,得到第三文档;其中,所述指定字符区域表示所述预设表格模板中待填充的空白行;[0104]第四文档获取模块503,用于基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到最终的第四文档;其中,所述第四文档包含的表格中填充有所述第一数据。[0105]可选的,所述模板引擎为velocity模板引擎,或,freemarker模板引擎。[0106]可选的,所述第四文档获取模块503,包括:[0107]第五文档获取子模块,用于基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到xml格式的第五文档;所述第五文档包含的表格中填充有所述第一数据;[0108]第四文档获取子模块,用于将所述第五文档的文档格式修改为word格式,得到word格式的第四文档。[0109]可选的,所述第五文档获取子模块,包括:[0110]编码单元,用于按照base64格式,对待填充至所述空白行的第一数据中的图片进行编码处理,得到第二数据;[0111]第五文档获取单元,用于基于预设的模板引擎,对所述第三文档和所述第二数据进行组合,得到xml格式的第五文档。[0112]可选的,所述第五文档获取单元,具体用于基于预设的模板引擎,针对所述第二数据中属于同一行的各属性信息,依次赋值于所述第三文档中指定字符区域中对应的变量,得到xml格式的第五文档。[0113]可选的,所述第一文档获取模块501,具体用于获取对所述第二文档进行格式转化得到的xml格式的第六文档;[0114]对所述第六文档进行格式化处理,得到第一文档。[0115]基于本发明实施例提供的文档生成装置,将循环表达式移动至指定字符区域的上侧,并将结束符移动至指定字符区域的下侧,也就能够基于循环表达式,将第一数据循环填充至各个空白行,进而,能够得到包含的表格中填充有第一数据的第四文档。相对于现有技术中由人工输入信息,本发明实施例的方法由电子设备自动循环对空白行进行赋值,能够提高包含表格的word文档的生成效率,且降低人工成本。[0116]本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,[0117]存储器603,用于存放计算机程序;[0118]处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:[0119]获取可扩展标记语言xml格式的第一文档;其中,所述第一文档为基于对包含有预设表格模板的word格式的第二文档进行格式转化得到的;第二文档中记录有循环表达式和结束符;[0120]将所述第一文档中的循环表达式移动至指定字符区域的上侧,并将所述第一文档中的结束符移动至所述指定字符区域的下侧,得到第三文档;其中,所述指定字符区域表示所述预设表格模板中待填充的空白行;[0121]基于预设的模板引擎,对所述第三文档和待填充至所述空白行的第一数据进行组合,得到最终的第四文档;其中,所述第四文档包含的表格中填充有所述第一数据。[0122]上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0123]通信接口用于上述电子设备与其他设备之间的通信。[0124]存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。[0125]上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0126]在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一文档生成方法的步骤。[0127]在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一文档生成方法。[0128]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。[0129]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0130]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。[0131]以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1