一种word文档自动生成方法、系统、计算机设备及存储介质
技术领域
1.本发明涉及文档处理技术领域,具体涉及一种word文档自动生成方法、系统、计算机设备及存储介质。
背景技术:2.随着word文档应用到我们的工作当中,在部分文档处理的业务场景上,有大量格式相同文档,业务人员需要逐个编辑生成大量格式文档,如海关检查中需要用到的固体废物检测结果报告word文档等。在生成大量格式相同,内容有区别的文档时,目前常见的有两种方式:第一种是由业务人员人工编写文档,随着文档的数量上升,需要耗费大量的时候,还可能容易出现错误的问题。第二种是由开发人员使用apachepoi获取业务数据,按照poi提供的api生成文档。apachepoi是开放源码函式库,poi提供api给java程序对格式文档进行读和写的功能,通过业务系统生成和修改word文档。通过使用apachepoi的方式可以解决文档生成效率的问题,但是随着业务文档的增加,需要开发人员开发编写响应的业务代码,需要业务人员在文档格式上耗费大量时间,并且还有测试,版本发布等时间。
3.基于目前大多数开发人员主要通过访问底层api生成word文档,开发人员需要对word底层api接口较为熟悉,包括word文档章节号、大纲等级及内容、文本内容及格式、图片内容以及参数替换等功能,同时还需要编写较为复杂的代码予以实现,代码量大,逻辑相对复杂,存在大量重复代码,复用度较低,可维护性差。因此,现有的word文档模版化自动生成方式还有待改进,以提高word文档自动化生成的效率和可操作性。
技术实现要素:4.针对现有技术存在的不足,本发明提供了一种word文档自动生成方法、系统、计算机设备及存储介质,其应用时,可以实现基于待录入结果数据的word文件自动生成,提高word文件自动化生成的效率和可操作性。
5.第一方面,本发明提供一种word文档自动生成方法,包括:
6.获取word指令模板文件,所述word指令模板文件包含指令编码;
7.将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码;
8.调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
9.执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
10.基于上述技术内容,通过获取word指令模板文件来转换为freemarker模板文件,然后调取待录入结果数据,将待录入结果数据转换为freemarker可调用的格式数据,最后再执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档,就可以在不通过第三方编程库或者编程接口直接操
作word文档内容的情况下,实现基于待录入结果数据的word文件自动生成,提高word文件自动化生成的效率和可操作性。
11.在一个可能的设计中,所述方法还包括:获取待录入结果数据,并存储待录入结果数据。
12.在一个可能的设计中,所述待录入结果数据包括文字数据、表格数据和图像数据。
13.在一个可能的设计中,所述执行freemarker模板文件,包括:调用freemarker引擎来执行freemarker模板文件。
14.在一个可能的设计中,所述指令编码包括起始符、数据框和参数标识,其中,起始符表征指令开始,数据框表征要录入word模板中的内容,各参数标识分别关联对应的格式数据。
15.在一个可能的设计中,所述方法还包括:将word结果文档存档,并将word结果文档传输至显示端。
16.第二方面,本发明提供一种word文档自动生成系统,包括获取单元、模板生成单元、数据采集单元和文档生成单元,其中:
17.获取单元,用于获取word指令模板文件,所述word指令模板文件包含指令编码;
18.模板生成单元,用于将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码;
19.数据采集单元,用于调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
20.文档生成单元,用于执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
21.第三方面,本发明提供一种计算机设备,所述计算机设备包括:
22.存储器,用于存储指令;
23.处理器,用于读取所述存储器中存储的指令,并根据指令执行上述第一方面中任意一种所述的word文档自动生成方法。
24.第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第一方面中任意一种所述的word文档自动生成方法。
25.第五方面,本发明提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行上述第一方面中任意一种所述的word文档自动生成方法。
26.本发明的有益效果为:
27.本发明通过获取word指令模板文件来转换为freemarker模板文件,然后调取待录入结果数据,将待录入结果数据转换为freemarker可调用的格式数据,最后再执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档,就可以在不通过第三方编程库或者编程接口直接操作word文档内容的情况下,实现基于待录入结果数据的word文件自动生成,提高word文件自动化生成的效率和可操作性。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明的方法步骤示意图;
30.图2为本发明的系统构成示意图;
31.图3为本发明的计算机设备构成示意图。
具体实施方式
32.下面结合附图及具体实施例对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
33.应当理解,术语第一、第二等仅用于区分描述,而不能理解为指示或暗示相对重要性。尽管本文可以使用术语第一、第二等等来描述各种单元,这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
34.在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
35.实施例1:
36.本实施例提供一种word文档自动生成方法,如图1所示,方法包括以下步骤:
37.s101.获取word指令模板文件,所述word指令模板文件包含指令编码。
38.具体实施时,可通过用户上传word指令模板文件,该word指令模板文件包含指令编码,即在word模板文件中预先编辑有指令编码。
39.s102.将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码。
40.具体实施时,在获取到word指令模板文件后,需要将word指令模板文件转换为可执行的freemarker模板文件,以便后续利用freemarker模板文件进行word文件的自动生成,转换后的freemarker模板文件包含word模板和指令编码。
41.s103.调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据。
42.具体实施时,可通过用户上传待录入结果数据,然后对待录入结果数据进行存储,需要使用时,即可直接调取存储的待录入结果数据进行数据转换,将待录入结果数据转换为freemarker可调用的格式数据。其中,待录入结果数据包括文字数据、表格数据和图像数据,格式数据包括转换后的文字数据、表格数据和图像数据,转换后的文字数据、表格数据和图像数据即构成word文件的内容要素。
43.s104.执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
44.具体实施时,可调用freemarker引擎来执行freemarker模板文件,以根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。指令编码包括起始符、数据框和参数标识,其中,起始符表征指令开始,数据框表征要录入word模板中的内容,各参数标识分别关联对应的格式数据,如#{列表id="name"}和#{参数1},#为起始符表征指令开始,{}为数据框表征要录入word模板中的内容,{}内的为参数标识,分别对应关联相应的格式数据,利用freemarker引擎根据指令编码即可将参数标识关联的格式数据自动录入word模板中,生成word结果文档。生成word结果文档可存档,并传输至相应的显示端进行显示。
45.freemarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(html网页、电子邮件、配置文件、源代码等)的通用工具,它不是面向最终用户的,而是一个java类库,其模板编写为freemarker template language(ftl)属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。
46.本实施例通过获取word指令模板文件来转换为freemarker模板文件,然后调取待录入结果数据,将待录入结果数据转换为freemarker可调用的格式数据,最后再执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档,就可以在不通过第三方编程库或者编程接口直接操作word文档内容的情况下,实现基于待录入结果数据的word文件自动生成,通过本实施例方法,普通业务人员都可以模式化地根据需求构建word指令模板文件,再通过freemarker脚本执行引擎,生成由给定待录入结果数据集填充的word文档,提高了word文件自动化生成的效率和可操作性。
47.实施例2:
48.本实施例提供一种word文档自动生成系统,如图2所示,包括获取单元、模板生成单元、数据采集单元和文档生成单元,其中:
49.获取单元,用于获取word指令模板文件,所述word指令模板文件包含指令编码;
50.模板生成单元,用于将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码;
51.数据采集单元,用于调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
52.文档生成单元,用于执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
53.实施例3:
54.本实施例提供一种计算机设备,如图3所示,在硬件层面,包括:
55.通讯接口,用于建立处理器与相应数据接口的通讯连接;
56.存储器,用于存储指令;
57.处理器,用于读取所述存储器中存储的指令,并根据指令执行实施例1中的word文档自动生成方法,具体包括:
58.s101.获取word指令模板文件,所述word指令模板文件包含指令编码;
59.s102.将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码;
60.s103.调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
61.s104.执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
62.可选地,该计算机设备还包括内部总线。处理器、存储器和通讯接口可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
63.所述存储器可以但不限于包括随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、闪存(flash memory)、先进先出存储器(first input first output,fifo)和/或先进后出存储器(first in last out,filo)等。所述处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
64.实施例4:
65.本实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行实施例1中的word文档自动生成方法,具体包括:
66.s101.获取word指令模板文件,所述word指令模板文件包含指令编码;
67.s102.将word指令模板文件转换为可执行的freemarker模板文件,所述freemarker模板文件包含word模板和指令编码;
68.s103.调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
69.s104.执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
70.其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(memory stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程系统。
71.实施例5:
72.本实施例提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行实施例1中的word文档自动生成方法,具体包括:
73.s101.获取word指令模板文件,所述word指令模板文件包含指令编码;
74.s102.将word指令模板文件转换为可执行的freemarker模板文件,所述
freemarker模板文件包含word模板和指令编码;
75.s103.调取待录入结果数据,并将待录入结果数据转换为freemarker可调用的格式数据;
76.s104.执行freemarker模板文件,根据freemarker模板文件的指令编码,调用格式数据来对应录入word模板中,生成word结果文档。
77.其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程系统。
78.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。