CN109241515B - 一种生成报告文件的方法及装置 - Google Patents
一种生成报告文件的方法及装置 Download PDFInfo
- Publication number
- CN109241515B CN109241515B CN201811060916.0A CN201811060916A CN109241515B CN 109241515 B CN109241515 B CN 109241515B CN 201811060916 A CN201811060916 A CN 201811060916A CN 109241515 B CN109241515 B CN 109241515B
- Authority
- CN
- China
- Prior art keywords
- target data
- report
- freemarker
- template
- field
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种生成报告文件的方法及装置,该方法,包括:获取报告需求;根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段;根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;获取所述数据源;利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件。本发明提供了一种生成报告文件的方法及装置,能够更加方便地生成报告文件。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种生成报告文件的方法及装置。
背景技术
在进行数据处理时,经常需要将数据库等数据源中的数据以报告文件的形式输出。在现有技术中,通常需要人工设置报告文件的文本,然后,通过人工的方式从数据源中查找需要的数据,然后,人工填充到报告文件的文本中。
通过上述描述可见,现有技术中需要人工来生成报告文件,比较复杂。
发明内容
本发明实施例提供了一种生成报告文件的方法及装置,能够更加方便地生成报告文件。
一方面,本发明实施例提供了一种生成报告文件的方法,包括:
获取报告需求;
根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段;
根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
获取所述数据源;
利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件。
进一步地,
所述报告需求中包括:至少一个待填充数据的位置字段;
所述根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,包括:
确定所述报告需求中的每个所述位置字段对应的所述目标数据字段;
所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板,包括:
根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式;
将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板。
进一步地,
所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件,包括:
利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件。
进一步地,
该方法进一步包括:
预先设置所述freemarker模板的位于本地的第一存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第一存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第一存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到本地。
进一步地,
该方法进一步包括:
预先设置所述freemarker模板的位于服务器上的第二存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第二存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第二存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到所述服务器上;
将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
另一方面,本发明实施例提供了一种生成报告文件的装置,包括:
需求获取单元,用于获取报告需求;
模板生成单元,用于根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
数据获取单元,用于获取所述数据源;
报告生成单元,用于利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件。
进一步地,
所述报告需求中包括:至少一个待填充数据的位置字段;
所述模板生成单元,用于确定所述报告需求中的每个所述位置字段对应的所述目标数据字段,根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式,将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板。
进一步地,
所述报告生成单元,用于利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件。
进一步地,
该装置进一步包括:
第一设置单元,用于设置所述freemarker模板的位于本地的第一存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第一存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第一存储路径中获取所述freemarker模板;
进一步包括:
存储单元,用于将所述报告文件保存到本地。
进一步地,
该装置进一步包括:
第二设置单元,用于设置所述freemarker模板的位于服务器上的第二存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第二存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第二存储路径中获取所述freemarker模板;
下载单元,用于将所述报告文件保存到所述服务器上;将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
在本发明实施例中,根据报告需求和确定出的目标数据字段,生成freemarker模板,利用freemarker引擎自动从数据源中向freemarker模板中填充目标数据,生成报告文件,通过freemarker引擎即可实现数据的自动填充,能够更加方便地生成报告文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种生成报告文件的方法的流程图;
图2是本发明一实施例提供的另一种生成报告文件的方法的流程图;
图3是本发明一实施例提供的一种生成报告文件的装置的示意图;
图4是本发明一实施例提供的另一种生成报告文件的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种生成报告文件的方法,该方法可以包括以下步骤:
步骤101:获取报告需求;
步骤102:根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段;
步骤103:根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
步骤104:获取所述数据源;
步骤105:利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件。
在本发明实施例中,根据报告需求和确定出的目标数据字段,生成freemarker模板,利用freemarker引擎自动从数据源中向freemarker模板中填充目标数据,生成报告文件,通过freemarker引擎即可实现数据的自动填充,能够更加方便地生成报告文件。
在本发明一实施例中,所述报告需求中包括:至少一个待填充数据的位置字段;
所述根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,包括:
确定所述报告需求中的每个所述位置字段对应的所述目标数据字段;
所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板,包括:
根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式;
将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板。
在本发明实施例中,报告需求中通过位置字段来表明需要的数据,每个位置字段需要对应一个目标数据字段,目标数据字段下的数据就是报告文件中需要包含的数据。而为了能够从数据源中获取需要的数据,设置每个位置字段对应的表达式,表达式中包含目标数据字段的信息,例如:字段名等。生成的freemarker模板中包含各个位置字段,以及,各个位置字段对应的表达式。
在本发明一实施例中,所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件,包括:
利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件。
在本发明实施例中,针对每个表达式来说,当前表达式中携带对应的当前目标数据字段的信息,freemarker引擎通过对当前表达式进行解析,能够确定当前表达式对应的当前目标数据字段,进而能够获取当前目标数据字段下的当前目标数据,基于freemarker模板,将当前目标数据替换对应的当前表达式,生成报告文件。在freemarker模板中,当前表达式位于对应的当前位置字段的位置上,替换之后,当前目标数据位于当前位置字段的位置上,生成的报告文件中包含各个位置字段,以及,位于各个位置字段上的目标数据。
在本发明一实施例中,该方法进一步包括:
预先设置所述freemarker模板的位于本地的第一存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第一存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第一存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到本地。
在本发明实施例中,将freemarker模板存储在本地,生成的报告文件也直接存储在本地,整个方案可以在本地实现。
在本发明实施例中,针对freemarker模板在本地的情况,可以通过以下代码生成报告文件:
初始化以下变量:
freemarkerFilePath:freemarker模板的第一存储路径
exportFilePath:导出后的报告文件存放的文件位置
SelectSql:获取数据源的SQL语句
freemarkerName:freemarker模板的文件名
在本发明一实施例中,该方法进一步包括:
预先设置所述freemarker模板的位于服务器上的第二存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第二存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第二存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到所述服务器上;
将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
在本发明实施例中,将freemarker模板存储在服务器上,生成的报告文件保存到服务器上,然后,下载到本地,整个方案可以在服务器上实现。
在本发明实施例中,针对freemarker模板在服务器上的情况,可以通过以下代码生成报告文件:
初始化以下变量:
HttpServletRequest request:
SQL:获取数据源的SQL语句
FPATH:导出后的报告文件存放到服务器上的位置FREEMARKERNAME:freemarker模板的文件名
针对freemarker模板在本地的情况,可以通过以下方式调用根据freemarker模板生产报告文件的方法:
exportWord(“E://WEB-INF/resources/image/ddbf/exportWord/”,”E://ExportWord/”,”SELECT*FROM TABLENAME”,”cymb.xml”)
针对freemarker模板在服务器上的情况,可以通过以下方式调用根据freemarker模板生产报告文件的方法(以java版本的调用为例):
"${ctx}/cy/exportWebWord?SQL="+sql+"&FPATH="+filepath+"&FREEMARKERNAME="+fmname
如图2所示,本发明实施例提供了一种生成报告文件的方法,包括:
步骤201:获取报告需求,报告需求中包括:至少一个待填充数据的位置字段。
具体地,该报告需求可以通过word文件的方式实现,实现了报告格式的可视化设计,可见即可得,非常方便。
表1的产业申请单是一种报告需求,表1中的村名、村类别、退出时间、总人口、贫困人口、项目覆盖人口、项目覆盖贫困人口、项目名称、建设地点、建设性质、建设时间、项目类别、实施单位、实施负责人等均是位置字段,这些位置字段对应的待填充区域就是位置字段对应的位置。
表1
产业申请单
村名:
步骤202:确定报告需求中的每个位置字段对应的目标数据字段。
具体地,数据源可以是数据库或者数据仓库等。举例来说,在数据源中,在“cname”字段中存储“村名”的信息,那么,“cname”为“村名”对应的目标数据字段,在“clb”字段中存储“村类别”的信息,那么,“clb”为“村类别”对应的目标数据字段。
步骤203:根据每个位置字段对应的目标数据字段,生成每个位置字段对应的表达式。
具体地,每个位置字段对应的表达式为freemarker引擎能够识别的表达式。举例来说,根据“村名”对应的“cname”,生成“村名”对应的表达式为:${cy_cname?if_exists};根据“村类别”对应的“clb”,生成“村类别”对应的表达式为:${cy_clb?if_exists}。
步骤204:将每个位置字段对应的表达式添加到每个位置字段对应的位置上,生成freemarker模板。
具体地,如表2所示,表2的每个位置字段对应的位置上都填充了对应的表达式。表2为一种freemarker模板。
表2
产业申请单
村名:${cy_cname?if_exists}
另外,在生成freemarker模板之后,可以将freemarker模板转换为xml格式的文件,方便freemarker引擎处理。
步骤205:获取数据源。
具体地,确定存放报告文件所需要的数据的数据库,进一步地,可以确定存放报告文件所需要的数据的表。
步骤206:利用freemarker引擎对freemarker模板中的每个表达式进行解析,确定每个表达式对应的目标数据字段,从数据源中获取每个表达式对应的目标数据字段中的目标数据,利用目标数据替换对应的表达式,生成报告文件。
具体地,如表3所示,表3为一种报告文件。表3中位置字段的位置上填充有对应的目标数据,填充了目标数据后,得到报告文件。例如:“村名”对应的目标数据为“xx存”,“总人口”对应的目标数据为“753”等。
表3
产业申请单
村名:XX村
在本发明实施例中,报告文件中的目标数据可以动态获取,具体地,针对同一个报告需求,根据同一个目标数据字段下的不同目标数据,可以生成不同的报告文件。举例来说,表1的报告需求,在数据源中,“村名”对应的“cname”下有多个目标数据,当然,针对“cname”下不同的目标数据,表1中其他的“位置字段”对应的目标数据字段下也有对应的不同的目标数据,这样,针对“cname”下不同的目标数据可以生成不同的报告文件。
如图3、图4所示,本发明实施例提供了一种生成报告文件的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种生成报告文件的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种生成报告文件的装置,包括:
需求获取单元401,用于获取报告需求;
模板生成单元402,用于根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
数据获取单元403,用于获取所述数据源;
报告生成单元404,用于利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件。
在本发明一实施例中,所述报告需求中包括:至少一个待填充数据的位置字段;
所述模板生成单元,用于确定所述报告需求中的每个所述位置字段对应的所述目标数据字段,根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式,将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板。
在本发明一实施例中,所述报告生成单元,用于利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件。
在本发明一实施例中,该装置进一步包括:
第一设置单元,用于设置所述freemarker模板的位于本地的第一存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第一存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第一存储路径中获取所述freemarker模板;
进一步包括:
存储单元,用于将所述报告文件保存到本地。
在本发明一实施例中,该装置进一步包括:
第二设置单元,用于设置所述freemarker模板的位于服务器上的第二存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第二存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第二存储路径中获取所述freemarker模板;
下载单元,用于将所述报告文件保存到所述服务器上;将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种生成报告文件的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的执行指令,以使所述存储控制器执行本发明实施例提供的任意一种生成报告文件的方法。
本发明各个实施例至少具有如下有益效果:
在本发明实施例中,根据报告需求和确定出的目标数据字段,生成freemarker模板,利用freemarker引擎自动从数据源中向freemarker模板中填充目标数据,生成报告文件,通过freemarker引擎即可实现数据的自动填充,能够更加方便地生成报告文件。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (2)
1.一种生成报告文件的方法,其特征在于,包括:
获取报告需求;
根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段;
根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
获取所述数据源;
利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件;
所述报告需求中包括:至少一个待填充数据的位置字段;
所述根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,包括:
确定所述报告需求中的每个所述位置字段对应的所述目标数据字段;
所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板,包括:
根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式;
将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板;
所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件,包括:
利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件;
进一步包括:
预先设置所述freemarker模板的位于本地的第一存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第一存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第一存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到本地;
进一步包括:
预先设置所述freemarker模板的位于服务器上的第二存储路径;
在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,进一步包括:
将所述freemarker模板存储到所述第二存储路径中;
在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,进一步包括:
从所述第二存储路径中获取所述freemarker模板;
在所述生成所述报告文件之后,进一步包括:
将所述报告文件保存到所述服务器上;
将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
2.一种生成报告文件的装置,其特征在于,包括:
需求获取单元,用于获取报告需求;
模板生成单元,用于根据所述报告需求,确定报告文件的数据源中的至少一个目标数据字段,根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板;
数据获取单元,用于获取所述数据源;
报告生成单元,用于利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件;
所述报告需求中包括:至少一个待填充数据的位置字段;
所述模板生成单元,用于确定所述报告需求中的每个所述位置字段对应的所述目标数据字段,根据每个所述位置字段对应的所述目标数据字段,生成每个所述位置字段对应的表达式,将每个所述位置字段对应的所述表达式添加到每个所述位置字段对应的位置上,生成所述freemarker模板;
所述报告生成单元,用于利用所述freemarker引擎对所述freemarker模板中的每个所述表达式进行解析,确定每个所述表达式对应的所述目标数据字段,从所述数据源中获取每个所述表达式对应的所述目标数据字段中的所述目标数据,利用所述目标数据替换对应的所述表达式,生成所述报告文件;
进一步包括:
第一设置单元,用于设置所述freemarker模板的位于本地的第一存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第一存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第一存储路径中获取所述freemarker模板;
进一步包括:
存储单元,用于将所述报告文件保存到本地;
进一步包括:
第二设置单元,用于设置所述freemarker模板的位于服务器上的第二存储路径;
所述模板生成单元,进一步用于在所述根据所述至少一个目标数据字段和所述报告需求,生成freemarker模板之后,执行:将所述freemarker模板存储到所述第二存储路径中;
所述报告生成单元,进一步用于在所述利用freemarker引擎将所述数据源中所述至少一个目标数据字段中的目标数据,填充到所述freemarker模板中,生成所述报告文件之前,执行:从所述第二存储路径中获取所述freemarker模板;
下载单元,用于将所述报告文件保存到所述服务器上;将位于所述服务器上的所述报告文件以文件流的形式下载到本地。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811060916.0A CN109241515B (zh) | 2018-09-12 | 2018-09-12 | 一种生成报告文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811060916.0A CN109241515B (zh) | 2018-09-12 | 2018-09-12 | 一种生成报告文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241515A CN109241515A (zh) | 2019-01-18 |
CN109241515B true CN109241515B (zh) | 2023-04-07 |
Family
ID=65067652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811060916.0A Active CN109241515B (zh) | 2018-09-12 | 2018-09-12 | 一种生成报告文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241515B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059305A (zh) * | 2019-03-04 | 2019-07-26 | 广州市辉海计算机科技有限公司 | 数据导出的方法和装置 |
CN111242468A (zh) * | 2020-01-08 | 2020-06-05 | 中联财联网科技有限公司 | 一种基于分布式的自动化生成评估报告的方法 |
CN112149390A (zh) * | 2020-09-28 | 2020-12-29 | 平安资产管理有限责任公司 | 报告生成方法、系统、计算机设备与计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2690563A1 (en) * | 2012-07-23 | 2014-01-29 | BRANDAD Systems AG | Method and device for reporting on data of documents generated from templates |
CN106202546A (zh) * | 2016-07-27 | 2016-12-07 | 浪潮软件集团有限公司 | 基于模板的数据分析展现方法 |
CN107122344A (zh) * | 2017-05-24 | 2017-09-01 | 中国农业银行股份有限公司 | 一种报告生成方法及系统 |
CN107491426A (zh) * | 2016-10-25 | 2017-12-19 | 宝沃汽车(中国)有限公司 | Ppt报告的自动生成方法及系统 |
-
2018
- 2018-09-12 CN CN201811060916.0A patent/CN109241515B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2690563A1 (en) * | 2012-07-23 | 2014-01-29 | BRANDAD Systems AG | Method and device for reporting on data of documents generated from templates |
CN106202546A (zh) * | 2016-07-27 | 2016-12-07 | 浪潮软件集团有限公司 | 基于模板的数据分析展现方法 |
CN107491426A (zh) * | 2016-10-25 | 2017-12-19 | 宝沃汽车(中国)有限公司 | Ppt报告的自动生成方法及系统 |
CN107122344A (zh) * | 2017-05-24 | 2017-09-01 | 中国农业银行股份有限公司 | 一种报告生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于FreeMarker的测试文档生成方法;孙佩刚;《电脑编程技巧与维护》;20180618(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109241515A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739934B (zh) | 差集对账方法、介质、计算机设备及系统 | |
CN108874924B (zh) | 搜索服务的创建方法、装置及计算机可读存储介质 | |
CN109241515B (zh) | 一种生成报告文件的方法及装置 | |
CN109062925B (zh) | 自动生成insert语句的方法、装置、计算机设备及存储介质 | |
US20120173226A1 (en) | Table merging with row data reduction | |
US20060235771A1 (en) | System and method for managing item interchange and identification in an extended enterprise | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
CN113010169A (zh) | 用于将ui图转换成代码文件的方法和装置 | |
CN111562907A (zh) | 自定义接口数据的转换方法与系统 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN114036132A (zh) | 对象信息的处理方法、装置、存储介质和电子设备 | |
CN111222015B (zh) | 一种异构xml映射生成文档方法 | |
CN114090502A (zh) | 一种资源管理方法、装置、设备及存储介质 | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
CN113434472A (zh) | 一种文件生成方法、装置、服务器及存储介质 | |
CN112380820A (zh) | 数据自动回填方法、装置、电子设备及计算机存储介质 | |
CN111309623A (zh) | 一种坐标类数据分类测试方法及装置 | |
CN115080596B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN116450682B (zh) | 基于数据合并的模型生成方法、装置、设备及介质 | |
CN110413644B (zh) | 一种数据缓存方法、电子装置及计算机可读存储介质 | |
US11042536B1 (en) | Systems and methods for automated data visualization | |
CN118095212A (zh) | 获取变更日志的方法、装置、设备、存储介质及程序产品 | |
CN115756487A (zh) | 目标类型变量查找方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230303 Address after: 250000 Langchao Road, Jinan, Shandong Applicant after: Inspur Genersoft Co.,Ltd. Address before: 250100 No. 2877 Kehang Road, Sun Village Town, Jinan High-tech District, Shandong Province Applicant before: SHANDONG INSPUR GENESOFT INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |