本发明属于数据分析报告制作技术领域,具体涉及一种自动化生成数据分析报告的方法。
背景技术:
现有技术中,数据分析师经常有生成一系列数据分析报告的需求。例如,某地区举办车展后,针对不同品牌的汽车,需要生成针对每个品牌的车展商业报告,如,长安汽车上海车展商业报告,吉利汽车上海车展商业报告,上汽大众汽车上海车展商业报告等。对于此类同系列的数据分析报告,具有以下特点:1)每个数据分析报告为PPT格式,各个数据分析报告的PPT页数相等;2)对于相同页数的PPT页面,整体布局风格相同,只是特定的分析内容存在区别,例如,对于长安汽车上海车展商业报告,其第2页的左侧需要嵌入一张长安汽车车辆图片;而对于吉利汽车上海车展商业报告,其第2页的左侧需要嵌入一张吉利汽车车辆图片;再例如,对于长安汽车上海车展商业报告,其第2页的某个位置A,需要输入长安汽车年销量数据;而对于吉利汽车上海车展商业报告,其第2页的同一位置A,需要输入吉利汽车年销量数据。
现有技术中,数据分析师主要采用以下方式生成同系列数据分析报告:首先制作出系列中的一个数据分析报告;然后,再在这个制作出来的数据分析报告的基础上,逐页逐项修改需变化的内容,例如,采用粘贴的方式或导入的方式,将新的内容粘贴到对应位置,从而制作出其他数据分析报告。此种同系列数据分析报告的生成方式,具有以下不足:由于实际应用中,同系列数据分析报告的数量众多,为数十个甚至上百个,并且,每个数据分析报告的页数较多,通常为100页以上,逐页逐项手工修改的方式,需要进行大量的复制粘贴和数据校验工作,占用了分析师大量时间;并且,易出现错误。可见,具有制作效率低的问题。如何解决此种问题,是目前迫切的事情。
技术实现要素:
针对现有技术存在的缺陷,本发明提供一种自动化生成数据分析报告的方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种自动化生成数据分析报告的方法,包括以下步骤:
步骤1,基于本次需要生成的数据分析报告集,生成任务需求;
所述任务需求为:所述本次需要生成的数据分析报告集具有m个属于相同系列的数据分析报告,依次记为:数据分析报告C1、数据分析报告C2,…,数据分析报告Cm;每个所述数据分析报告的页数相同,均为n页,将任意的数据分析报告Ci的第j页页面表示为:分析报告页面Dij;其中,i=1,2,…,m;j=1,2,…,n;各个数据分析报告的相同页码的分析报告页面,具有相同数量的可变数据内容,将第j页页面具有的可变数据内容的数量记为Sj;第j页页面具有的任意可变数据内容表示为Ujk,k=1,2,…,Sj;
步骤2,根据所述任务需求,配置并管理数据源,得到与本次需要生成的数据分析报告集对应的数据源;
其中,所述数据源具有多个数据表;将每个数据表表示为Bjk,k=1,2,…,Sj;Bjk含义为:该数据表为各个数据分析报告的第j页页面所共用的数据表,并且,该数据表与各个数据分析报告的第j页页面的第k个可变数据内容对应;数据表Bjk按顺序排列存储m个数据内容,其第1个数据内容与数据分析报告C1的第j页页面的第k个可变数据内容对应;其第2个数据内容与数据分析报告C2的第j页页面的第k个可变数据内容对应,依此类推,其第m个数据内容与数据分析报告Cm的第j页页面的第k个可变数据内容对应;
步骤3,根据所述任务需求,新建任务模板,所述任务模板具有n个任务子模板,依次记为任务子模板R1、任务子模板R2,…,任务子模板Rn;每个任务子模板为用于生成各个数据分析报告的相同页数页面的子模板;
对于任意的任务子模板Rj,通过以下方式配置和创建:
步骤3.1,在任务子模板Rj中,配置该任务子模板Rj所对应的分析报告页面的页数,即:第j页;
配置与任务需求所需数量对应的固定容器对象和可变容器对象;其中,所述固定容器对象为对于所有的数据分析报告,内容不发生变化的容器对象;所述可变容器对象为对于各个数据分析报告,内容可变化的容器对象;
步骤3.2,在任务子模板Rj中,配置固定容器对象的属性,固定容器对象的属性包括:固定容器对象的ID、固定容器对象的形状、固定容器对象的位置坐标以及固定容器对象的尺寸参数值;
在任务子模板Rj中,配置可变容器对象的属性,所述可变容器对象的属性包括:可变容器对象的ID、可变容器对象的形状、可变容器对象的位置坐标、可变容器对象的尺寸参数值、可变容器对象的类型以及可变容器对象所引用的数据表中的对应的可变数据内容是否需要裁剪处理以及裁剪处理规则;其中,所述可变容器对象的类型包括图表类型、表格类型、文本框类型和形状类型;
步骤3.3,对于每个所述任务子模板Rj,配置数据查询语句;数据查询语句分别与任务子模板Rj中可变容器对象、对应的数据表中的可变数据内容建立映射关系;
步骤4,配置任务子模板预览功能,当执行任务子模板预览功能时,通过以下方式实现任务子模板预览,进而检验任务子模板的性能;
步骤4.1,在接收到执行任务子模板预览功能的指令时,生成任务子模板Rj的缩略图;
步骤4.2,在缩略图上面叠加一层蒙版;
步骤4.3,从任务子模板Rj中读取到可变容器对象以下属性:可变容器对象的ID、可变容器对象的形状、可变容器对象的位置坐标、可变容器对象的尺寸参数值以及可变容器对象的类型;
步骤4.4,根据读取到的可变容器对象的相关属性,在蒙版上面的对应坐标位置复现相应形状和尺寸的可变容器对象以及可变容器对象的ID;
步骤4.5,根据蒙版上面的复现内容,检验任务子模板的性能;
步骤5,在任务子模板通过检测后,即得到可生成满足本次需要的数据分析报告集的任务模板,基于所述任务模板,执行所述数据查询语句,生成数据分析报告,具体生成过程为:
步骤5.1,令i=1;
步骤5.2,采用以下方式生成数据分析报告Ci;
步骤5.2.1,通过平行及串行相结合的执行顺序,触发各个数据查询语句开始执行数据查询与数据填充的过程,一方面,数据查询语句将从数据源的数据表查询到的可变数据内容填充到任务子模板的对应可变容器对象中,另一方面,数据查询语句将从数据库查询到的固定数据内容填充到固定容器对象中,当一个任务子模板的可变容器对象和固定容器对象均被填充数据内容后,即生成对应的一页分析报告页面;
步骤5.2.2,当生成n页分析报告页面后,由于每页分析报告页面均对应有页码,根据页码的先后顺序,拼装制作得到数据分析报告Ci;
步骤5.3,令i=i+1,判断i是否大于m,如果不大于,返回步骤5.2,再生成下一个数据分析报告,如果大于,表明m个数据分析报告均已生成完毕,输出m个制作得到的数据分析报告集。
优选的,步骤5.2.1中,数据查询语句采用以下方式将从数据源的数据表查询到的可变数据内容填充到任务子模板的对应可变容器对象中:
假设本次需要填充数据分析报告Ci的第j页页面所对应的任务子模板Rj,任务子模板Rj共有Sj个可变容器对象;
则:
对于任务子模板Rj的第1个可变容器对象,采用以下方式填充:
数据查询语句从数据表Bj1中查询到第j个数据内容,根据任务子模板Rj的第1个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第1个可变容器对象;
对于任务子模板Rj的第2个可变容器对象,采用以下方式填充:
数据查询语句从数据表Bj2中查询到第j个数据内容,根据任务子模板Rj的第2个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第2个可变容器对象;
依此类推
对于任务子模板Rj的第Sj个可变容器对象,采用以下方式填充:
数据查询语句从数据表BjSj中查询到第j个数据内容,根据任务子模板Rj的第Sj个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第Sj个可变容器对象;
由此完成对一个任务子模板的所有可变容器对象的填充。
本发明提供的一种自动化生成数据分析报告的方法具有以下优点:
本发明提供的一种自动化生成数据分析报告的方法,可以快速、准确、高效的生成大批量的同系列数据分析报告,具有同系列数据分析报告生成制作效率高的优点,显著减轻数据分析师的工作量。
附图说明
图1为本发明提供的一种自动化生成数据分析报告的方法的流程示意图。
图2为本发明提供的一种自动化生成数据分析报告的方法的主要部件关系图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种自动化生成数据分析报告的方法,可有效解决现有技术中的相关问题,参考图1,包括以下步骤:
步骤1,基于本次需要生成的数据分析报告集,生成任务需求;
所述任务需求为:所述本次需要生成的数据分析报告集具有m个属于相同系列的数据分析报告,依次记为:数据分析报告C1、数据分析报告C2,…,数据分析报告Cm;每个所述数据分析报告的页数相同,均为n页,将任意的数据分析报告Ci的第j页页面表示为:分析报告页面Dij;其中,i=1,2,…,m;j=1,2,…,n;各个数据分析报告的相同页码的分析报告页面,具有相同数量的可变数据内容,将第j页页面具有的可变数据内容的数量记为Sj;第j页页面具有的任意可变数据内容表示为Ujk,k=1,2,…,Sj;
为理解方便,简单举例如下,但需要强调的是,以下举例仅仅用于对本发明思路进行理解,实际应用中,同系列数据分析报告包括的数据分析报告的数量,以及每个数据分析报告的页数等均远远大于以下举例:
参考图2,假设需要生成的数据分析报告集共有两个数据分析报告,分别为数据分析报告C1和数据分析报告C2。数据分析报告C1共有三页,分别为:分析报告页面D11、分析报告页面D12和分析报告页面D13。数据分析报告C1同样共有三页,分别为:分析报告页面D21、分析报告页面D22和分析报告页面D23。对于分析报告页面D11和分析报告页面D21,为布局相同的分析报告页面,具有相同的S1个可变数据内容;对于分析报告页面D12和分析报告页面D22,为布局相同的分析报告页面,具有相同的S2个可变数据内容;对于分析报告页面D13和分析报告页面D23,为布局相同的分析报告页面,具有相同的S3个可变数据内容。假设S1为2;S2为2;S3为3。具体关系参考图2。
步骤2,根据所述任务需求,配置并管理数据源,得到与本次需要生成的数据分析报告集对应的数据源;
其中,所述数据源具有多个数据表;将每个数据表表示为Bjk,k=1,2,…,Sj;Bjk含义为:该数据表为各个数据分析报告的第j页页面所共用的数据表,并且,该数据表与各个数据分析报告的第j页页面的第k个可变数据内容对应;数据表Bjk按顺序排列存储m个数据内容,其第1个数据内容与数据分析报告C1的第j页页面的第k个可变数据内容对应;其第2个数据内容与数据分析报告C2的第j页页面的第k个可变数据内容对应,依此类推,其第m个数据内容与数据分析报告Cm的第j页页面的第k个可变数据内容对应;
对于前面例子,由于各个数据分析报告的第1页生成方式,与其他页的生成方式完全相同,因此,仅以生成数据分析报告C1的分析报告页面D11和数据分析报告C2的分析报告页面D21为例,介绍数据表的配置方式。
具体的,由于分析报告页面D11和分析报告页面D21均具有两个可变数据内容,因此,共建立两个数据表,分别为数据表B11和数据表B12。数据表B11存储两个数据内容,分别为:数据内容B111和数据内容B112,数据表B12存储两个数据内容,分别为:数据内容B121和数据内容B122。其中,数据内容B111与分析报告页面D11的第1个位置对应,数据内容B112与分析报告页面D21的第1个位置对应;数据内容B121分析报告页面D11的第2个位置对应,数据内容B122与分析报告页面D21的第2个位置对应。
步骤3,根据所述任务需求,新建任务模板,所述任务模板具有n个任务子模板,依次记为任务子模板R1、任务子模板R2,…,任务子模板Rn;每个任务子模板为用于生成各个数据分析报告的相同页数页面的子模板;
对于任意的任务子模板Rj,通过以下方式配置和创建:
步骤3.1,在任务子模板Rj中,配置该任务子模板Rj所对应的分析报告页面的页数,即:第j页;
配置与任务需求所需数量对应的固定容器对象和可变容器对象;其中,所述固定容器对象为对于所有的数据分析报告,内容不发生变化的容器对象;所述可变容器对象为对于各个数据分析报告,内容可变化的容器对象;
例如,对于长安汽车上海车展商业报告和吉利汽车上海车展商业报告,其第2页相同位置均具有以下文字:“数据分析说明”,这一文字描述对所有同系列的车展商业报告均相同,则这一文字描述所对应的即为固定容器对象;而如果第2页相同位置,长安汽车上海车展商业报告中需要嵌入长安汽车标识;而吉利汽车上海车展商业报告需要嵌入吉利汽车标识,则这一嵌入图片的位置对应的即为可变容器对象。
本发明中,对于固定容器对象,之所以在此处设置容器,而不是简单的将“数据分析说明”这一文字描述直接嵌入到模板对应位置,原因为:固定容器对象通过查询语句也指向某个EXCEL表,因此,在后续向固定容器对象填充数据内容时,可以通过对EXCEL表中的内容进行一次更新,则通过运行程序可以将各个数据分析报告的固定容器对象所填充的内容进行一次性统一更新,例如,将某页分析报告的背景图统一更新,得到不同风格的分析报告页面,满足数据分析师的设计需求。
步骤3.2,在任务子模板Rj中,配置固定容器对象的属性,固定容器对象的属性包括:固定容器对象的ID、固定容器对象的形状、固定容器对象的位置坐标以及固定容器对象的尺寸参数值;
在任务子模板Rj中,配置可变容器对象的属性,所述可变容器对象的属性包括:可变容器对象的ID、可变容器对象的形状、可变容器对象的位置坐标、可变容器对象的尺寸参数值、可变容器对象的类型以及可变容器对象所引用的数据表中的对应的可变数据内容是否需要裁剪处理以及裁剪处理规则;其中,所述可变容器对象的类型包括图表类型、表格类型、文本框类型和形状类型;
实际应用中,可变容器对象的形状可以统一配置为长方形,其位置坐标统一为长方形左上角位置坐标,可变容器对象的尺寸参数值即为:长方形的长和宽。可变容器对象所引用的数据表中的对应的可变数据内容是否需要裁剪处理以及裁剪处理规则的意义为:由于数据源中的数据表内容,可以为查询语句在一定查询条件下检索数据库的结果,有时候,查询结果集并非完全符合数据分析师本次需求,例如,查询结果集为三行文字描述,而对于某页数据分析报告,仅需要第二行文字描述,所以此处配置裁剪处理规则,可直接将读取到的三行文字描述中的第二行文字描述裁剪出来,并填充到数据分析报告的对应容器对象中,由此可提高整个数据分析报告的生成效率。
步骤3.3,对于每个所述任务子模板Rj,配置数据查询语句;数据查询语句分别与任务子模板Rj中可变容器对象、对应的数据表中的可变数据内容建立映射关系;数据查询语句可以为SQL或者MDX语句等。
实际应用中,一条数据查询语句可以对应多个可变容器对象以及多个数据表中的可变数据内容,只要建立所需的任务需求,使查询语句按设定的执行规则执行即可,本发明对此并不限制。
步骤4,配置任务子模板预览功能,当执行任务子模板预览功能时,通过以下方式实现任务子模板预览,进而检验任务子模板的性能;
步骤4.1,在接收到执行任务子模板预览功能的指令时,生成任务子模板Rj的缩略图;
步骤4.2,在缩略图上面叠加一层蒙版;
步骤4.3,从任务子模板Rj中读取到可变容器对象以下属性:可变容器对象的ID、可变容器对象的形状、可变容器对象的位置坐标、可变容器对象的尺寸参数值以及可变容器对象的类型;
步骤4.4,根据读取到的可变容器对象的相关属性,在蒙版上面的对应坐标位置复现相应形状和尺寸的可变容器对象以及可变容器对象的ID;
步骤4.5,根据蒙版上面的复现内容,检验任务子模板的性能;
通过建立缩略图和蒙版的方式检验任务子模板的性能,一方面,任务子模板预览所消耗的系统资源少,另一方面,任务子模板预览的实现速度快,从而提高数据分析师的使用体验。
步骤5,在任务子模板通过检测后,即得到可生成满足本次需要的数据分析报告集的任务模板,基于所述任务模板,执行所述数据查询语句,生成数据分析报告,具体生成过程为:
步骤5.1,令i=1;
步骤5.2,采用以下方式生成数据分析报告Ci;
步骤5.2.1,通过平行及串行相结合的执行顺序,触发各个数据查询语句开始执行数据查询与数据填充的过程,一方面,数据查询语句将从数据源的数据表查询到的可变数据内容填充到任务子模板的对应可变容器对象中,另一方面,数据查询语句将从数据库查询到的固定数据内容填充到固定容器对象中,当一个任务子模板的可变容器对象和固定容器对象均被填充数据内容后,即生成对应的一页分析报告页面;
步骤5.2.1中,数据查询语句采用以下方式将从数据源的数据表查询到的可变数据内容填充到任务子模板的对应可变容器对象中:
假设本次需要填充数据分析报告Ci的第j页页面所对应的任务子模板Rj,任务子模板Rj共有Sj个可变容器对象;
则:
对于任务子模板Rj的第1个可变容器对象,采用以下方式填充:
数据查询语句从数据表Bj1中查询到第j个数据内容,根据任务子模板Rj的第1个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第1个可变容器对象;
对于任务子模板Rj的第2个可变容器对象,采用以下方式填充:
数据查询语句从数据表Bj2中查询到第j个数据内容,根据任务子模板Rj的第2个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第2个可变容器对象;
依此类推
对于任务子模板Rj的第Sj个可变容器对象,采用以下方式填充:
数据查询语句从数据表BjSj中查询到第j个数据内容,根据任务子模板Rj的第Sj个可变容器对象的属性,确定是否需要对查询到的第j个数据内容进行裁剪,如果需要,将第j个数据内容按裁剪处理规则进行处理后,得到处理后的数据内容,再将处理后的数据内容填充到任务子模板Rj的第Sj个可变容器对象;
由此完成对一个任务子模板的所有可变容器对象的填充。
步骤5.2.2,当生成n页分析报告页面后,由于每页分析报告页面均对应有页码,根据页码的先后顺序,拼装制作得到数据分析报告Ci;
步骤5.3,令i=i+1,判断i是否大于m,如果不大于,返回步骤5.2,再生成下一个数据分析报告,如果大于,表明m个数据分析报告均已生成完毕,输出m个制作得到的数据分析报告集。在数据分析报告集制作完成后,可创建一个任务启动执行该报告,通过邮箱或者其他通信方式发送给指定人员。
本发明提供的自动化生成数据分析报告的方法,具有以下优点:
(1)生成同系列数据分析报告的格式可以为任意格式,包括但不限于PDF格式或PPT格式,具有适用范围广的特点;
(2)通过配置数据查询语句,统一调度执行,可保证查询结果的准确性,从而保证了数据分析报告的准确性;
(3)由于通过数据查询语句,将数据源数据表中的内容填充到任务子模板的可变容器对象中,因此,可根据实际需求,灵活改变数据源数据表中的内容,从而可快速一次性的更新所有数据分析报告在对应位置的对应内容,满足对数据分析报告快速修订或调整的需求;
(4)数据查询语句可平行及串行相结合的执行顺序进行执行,提高报告生成效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。