一种报表文件生成方法及装置与流程

文档序号:14653641发布日期:2018-06-08 22:32阅读:128来源:国知局
本发明涉及数据处理技术,具体的讲是一种报表生成方法及装置。
背景技术
::现有技术中,集团用户需要对集团的报告数据等生成PPT报表,初期探索后使用以后的perl包和java包组合,每次开发工作量大约每页PPT需要4天。开发时将一份ppt分解给多个开发人员,一周后单页测试通过后再次进行联调。联调大约需要花费一个星期。同时,采用perl包和java包组合的方式,生成的PPT报表的方式,功能有限,生成的报表的界面也比较简单,不能满足用户需求。同时,PPT报表生成不久后增加了生成word报表的需求,进一步增加了开发工作量。并且,用户再次提出了图表可编辑的要求,现有程序包无法支持该需求。技术实现要素:为提高报表生成效率,优化生成的报表,本发明实施例提供了一种报表文件生成方法,包括:按指定的格式读取待填充的数据;根据用户的指令选择预选存储的报表模板,所述报表模板具有标识关键字;将所述待填充数据填充到报表模板中生成报表文件。本发明实施例中,所述的按指定的格式读取待填充的数据包括:用预设的标识关键字标识待填充的数据;读取标识后的待填充数据。本发明实施例中,所述的将所述待填充数据填充到报表模板中生成报表文件文件包括:解析所述报表模板中的标识关键字;根据解析到模板的标识关键字和待填充数据的标识关键字将待填充数据填充到报表模板中生成报表文件。本发明实施例中,所述的预选存储的报表模板包括:odt文件、odp文件。本发明实施例中,所述的待填充的数据包括:字符数据、表格数据和图表数据。同时,本发明还公开一种报表文件生成装置,装置包括:读取模块,用于按指定的格式读取待填充的数据;模板选择模块,用于根据用户的指令选择预选存储的报表模板,所述报表模板具有标识关键字;报表生成模块,用于将所述待填充数据填充到报表模板中生成报表文件。本发明实施例中,所述的读取模块包括:标识单元,用于用预设的标识关键字标识待填充的数据;读取单元,用于读取标识后的待填充数据。本发明实施例中,所述报表生成模块包括:解析单元,用于解析所述报表模板中的标识关键字;填充单元,用于根据解析到模板的标识关键字和待填充数据的标识关键字将待填充数据填充到报表模板中生成报表文件。本发明的报表生成过程中,报表样式和数据分离,只需要实现对数据的抽取,ppt和word中文字表格图表等元素的样式位置均由模板实现,而模板可通过office进行可视化的编辑,可以更快的对格式进行调整,大大提高报表生成效率。为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明一种报表文件生成方法流程图;图2为本发明实施例中报表模板的截图;图3为本发明实施例中生成的报表的截图;图4为本发明实施例中的示意图;图5为本发明实施例中的示意图;图6为本发明实施例中的示意图;图7为本发明实施例中的示意图;图8为本发明实施例中的示意图;图9为本发明实施例中的示意图;图10为本发明实施例中的示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供一种报表文件生成方法,如图1所示,该方法包括:步骤S101,按指定的格式读取待填充的数据;步骤S101,根据用户的指令选择预选存储的报表模板,报表模板具有标识关键字;步骤S101,将待填充数据填充到报表模板中生成报表文件。本发明实施例中,所述的按指定的格式读取待填充的数据包括:用预设的标识关键字标识待填充的数据;读取标识后的待填充数据。本发明实施例中,所述的将所述待填充数据填充到报表模板中生成报表文件文件包括:解析所述报表模板中的标识关键字;根据解析到模板的标识关键字和待填充数据的标识关键字将待填充数据填充到报表模板中生成报表文件。下面结合具体的实施方式对本发明的技术方案做进一步详细说明:本实施例的目的在于,向odt和odp文件模板中填充数据生成类似于word和ppt的报表。odt和odp文件的基础是遵循odf标准的xml文件,可以在office07的sp2以上版本打开。本实施例,在文件中通过关键词标记数据覆盖的位置,利用perl程序将文件解析后用实际数据替换模板中的关键词并存储。本实施例的整体步骤如下:1、调用报告生成程序,根据数据库信息,确定数据程序并运行。2、数据程序从数据库抽取数据,并按指定格式传递给生成程序。即根据要生成的报表,从用户上传的数据中,按指定的格式提取指定时间范围的数据。3、生成程序找到对应的模版文件。4、将模板文件解包到指定目录中。即生成的报告的存储目录。5、在模板文件中找到要替换的字符,用提取的数据替换对应字符,生成报表。如图2所示,为本发明实施方式中,一odt模板的部分截图,图3为填充后生成的报表的截图。具体的,本发明实施例中,各种格式的数据的替换如下:1)本实施例中,从模板文件中找到需要替换的字符,在提取的数据中找到字符对应的数据,用数据替换对应字符;字符内容存在于解包目录中的content.xml文件中的<office:body>标签下,其格式如(本例中使用[Data][\Data]来标识关键字):<text:ptext:style-name="P1">[Data]aaa※bbb[\Data]</text:p>或<text:spantext:style-name="T1">[Data]aaa※bbb[\Data]</text:span>。样例中被粗体部分为标识,本例子中标识符号为aaa※bbb,对应的数据存储在数据程序传参中的data{'aaa'}{'bbb'}中。将粗体部分直接用读取的数据替换即可。样例中红字部分为格式标识,对应的格式在content.xml文件中的<office:automatic-styles>标签下,内容如下:<style:stylestyle:name="P1"style:parent-style-name="Standard"style:family="paragraph"><style:text-propertiesstyle:country-asian="CN"style:language-asian="zh"/></style:style>根据整体的style:name新建一个新的格式,然后复制原格式,同时根据data对应变量中的配置信息中更新新的格式选项。2)本实施例中,从模板文件中找到需要替换的表格,分析表格的表头以及格式。依据表头在数据中找到字符对应的数据,依据格式重新生成表格并来替换原有表格。(1)对于word文件:用openoffice打开odt模板文件,在表格上点击右键选择“表格(T)”选项。可在图4的401处配置表格名称(本例中使用[Table][/Table]来标识关键字):然后在配置表头后增加一行,如下表所示:其内容存在于解包目录中的content.xml文件中的<office:body>标签下,其格式如图5所示:框501处为配置的表格关键字,然后根据圈502的标签可将对应表格整体从文件中提取出来,并从参数中获取到对应表格的数据。框503处为配置的列关键字,圈504处为行标签。当某一行匹配到列关键字时,该行所有内容依据行标签整体复制到内存中,表数据有多少行就复制多少份。然后根据各个行对应的列数据对指定行文本中对应的列关键字标签进行替换。替换完成后如果发现表格数据中对格式有修改,过程可见第二部分的格式替换。完成后将所有行文本拼接到一起,替换掉原有的行文本。由于表格存在合并行和合并列的情况,当配置了合并行和合并列的时候,只有最左上方的单元格有值,其余地方替换成<table:covered-table-cell/>(2)对于ppt文件:用openoffice打开odp模板文件,全选表格后点击右键选择“名称(F)”选项。可在图6配置表格名称(本例中使用[Table][/Table]来标识关键字):然后在配置表头后增加一行,如下表所示:其内容存在于解包目录中的content.xml文件中的<office:body>标签下,其格式如图7所示:过程整体和odt类似,只是关键字有区别。(3)关于图表的替换:在图表上点击右键,选择“对象(D)”选项,可在图8的框801处配置图表名称(本例中使用[Chart][/Chart]来标识关键字);其内容存在于解包目录中的content.xml文件中的<office:body>标签下,其格式如图9所示:框901处为图表关键字,框902内为数据目录,框903为缓存文件。删除缓存文件。打开数据目录下的content.xml文件,可得<office:chart>内容,如图10所示:框101处为图表表头信息,可依据图表数据的参数对其内容进行替换。框102处为图表数据信息,根据图表数据量复制多份到内存中。依据图表数据的参数和内容对其进行替换后将多份数据拼接到一起,然后替换掉原有所有数据(框102+框103)即可。同时,本发明还提供一种报表文件生成装置,装置包括:读取模块,用于按指定的格式读取待填充的数据;模板选择模块,用于根据用户的指令选择预选存储的报表模板,所述报表模板具有标识关键字;报表生成模块,用于将所述待填充数据填充到报表模板中生成报表文件。本发明的实施例可提供为方法、系统、或计算机程序产品,装置是实现方式由前述的方法的实现方式可知,在此不再赘述。本发明实施过程中,样式和数据分离。代码中只需要实现对数据的抽取,ppt和word中文字表格图表等元素的样式位置均由模板实现。而模板可通过office进行可视化的编辑,可以更快的对格式进行调整。该程序自从2012年上线后,一个人仅花一周时间便重写了全组之前半年开发出的所有ppt和word报告,并且也实现了之前一直没有实现的增加图表编辑功能的需求。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1