一种基于Excel批注的报表生成方法
【专利摘要】本发明涉及一种基于Excel批注的报表生成方法,该方法包括下列步骤:定义脚本格式,生成数据字典和解析程序;生成Excel报表文件;Excel报表文件的单元格是否需要自动填充,若是,则根据数据字典添加Excel单元格批注,绑定数据库内容;若否,则直接添加Excel单元格批注,描述报表的基本信息;利用解析程序调用报表文件,形成结果报表。与现有技术相比,本发明具有适用性广、制作简单、更改方便、软件维护简单以及对专业要求低等优点。
【专利说明】
_种基于Exce I批注的报表生成方法
技术领域
[0001] 本发明涉及一种报表生成方法,尤其是涉及一种基于Excel批注的报表生成方法。
【背景技术】
[0002] 报表就是用表格、图表等格式来动态显示数据,当计算机出现之后,人们利用计算 机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是数据动态 化,格式多样化,并且实现报表数据和报表格式的完全分离,用户可以只修改数据,或者只 修改格式。报表分类EXCEL、WORD等编辑软件:它们可以做出很复杂的报表格式,但是由于它 们没有定义专门的报表结构来动态的加载报表数据,所有这类软件中的数据都是已经定义 好的,静态的,不能动态变化的。它们没有办法实现报表软件的"数据动态化"特性。数据库 软件:它们可以拥有动态变化的数据,但是这类软件一般只会提供,最简单的表格形式来显 示数据。它们没有实现报表软件的"格式多样化"的特性。报表软件,它们需要有专门的报表 结构来动态的加载数据,同时也能够实现报表格式的多样化。
[0003] 软件设计中,把到数据库中的记录输出到报表进行打印,有多种工具和方法。一般 性的报表,输出重复性的数据,若没有格式要求,制作就比较简单;有些报表,比如计量器具 的证书和测试报告,具有规定的格式,需要把各种数据输出到报表特定的位置上,这样的报 表不是一般人能制作的,需要较强的专业知识,甚至需要编写很长的代码。对于开发人员, 给众多的客户制定五花八门的报表往往是一件很繁琐的事,因为目前,制作报表还是一项 专业的工作,普通的用户无法自己制作。目前,缺乏一种采用一般人熟悉的办公软件制作出 专业报表的简单有效的方法。
【发明内容】
[0004] 本发明的目的是针对上述问题提供一种基于Excel批注的报表生成方法。
[0005] 本发明的目的可以通过以下技术方案来实现:
[0006] -种基于Excel批注的报表生成方法,该方法包括下列步骤:
[0007] (1)定义脚本格式,生成数据字典和解析程序;
[0008] (2)生成Excel报表文件;
[0009] (3)判断(2)中的Excel报表文件的单元格是否需要自动填充,若是,则根据(1)中 的数据字典添加Excel单元格批注,绑定数据库内容;若否,则直接添加Excel单元格批注, 描述报表的基本信息;
[0010] (4)利用(1)中生成的解析程序调用(3)中生成的报表文件,形成结果报表。
[0011] 所述脚本格式包括报表类型、自动数据的排列方式、报表的区域、对应的数据表和 数据字段、关联的条件、空数据的默认格式、数据的单位以及数据的转换方式。
[0012] 所述报表类型包括证书、通知书、测试报告以及清单。
[0013] 所述数据字典为生成报表的数据库的定义。
[0014] 所述解析程序为解析Excel单元格批注的程序。
[0015]所述步骤(4)具体为:
[0016] (41)获取经步骤(3)处理后的Excel报表文件;
[0017] (42)复制所述Excel报表文件的Sheet,创建一个新Sheet;
[0018] (43)获取步骤(43)中新Sheet的所有批注内容,记录每个批注的单元格;
[0019] (44)解析(43)中的批注,得到报表类型及每个批注对应的信息;
[0020] (45)根据(44)中解析的批注得到的信息,查询数据字典获得对应的数据;
[0021] (46)根据(44)中得到的报表类型,对报表类型为清单的新Sheet,统计重复性数据 所对应的单元格;
[0022] (47)将(45)和(46)中得到的数据写入新Sheet对应的单元格,形成最终报表。
[0023] 所述数据库为包含需要输出内容的关系型数据库。
[0024] 所述Excel报表文件具体为基于Excel的特定格式的空白报表文件。
[0025] 所述Excel单元格批注具体为根据脚本定义编写的批注。
[0026] 与现有技术相比,本发明具有以下有益效果:
[0027] 1)报表的制作时基于Excel软件来实现的,可以制作多种类型的报表;
[0028] 2)在Excel单元格批注中编写简单的脚本来关联报表内容与数据库记录,同时解 析批注中的脚本可以输出报表,实现了数据的动态化;
[0029] 3)报表的制作是开放式的,在提供数据字典和解析程序的情况下,普通用户可以 利用Excel软件对报表进行制作和修改,不用依赖专业的报表工具软件和软件开发人员,降 低了专业要求;
[0030] 4)本发明中脚本的定义与具体的数据库无关,可应用于任意关系型数据库,适用 性广;
[0031] 5)解析程序只用于将脚本与数据库进行对应,因此针对相同的数据库,无需更改 解析程序来制作不同报表,针对不同的数据库,解析程序只需进行简单的更改,更改简单, 操作方便。
【附图说明】
[0032]图1为本发明的方法流程图;
[0033] 图2为解析程序处理流程图。
【具体实施方式】
[0034]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案 为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于 下述的实施例。
[0035] 如图1所示,本发明提供了一种基于Excel批注的报表生成方法,该方法包括:
[0036] 在步骤si中,定义脚本格式,生成数据字典和解析程序。
[0037] 所述脚本格式包括报表类型、自动数据的排列方式、报表的区域、对应的数据表和 数据字段、关联的条件、空数据的默认格式、数据的单位以及数据的转换方式;所述报表类 型包括证书、通知书、测试报告以及清单。所述数据字典为生成报表的数据库的定义,所述 数据库为包含需要输出内容的关系型数据库。所述解析程序为解析Excel单元格批注的程 序。
[0038] 在步骤s2中,生成Excel报表文件,该Excel报表文件具体为基于Excel的特定格式 的空白报表文件。
[0039] 在步骤s3中,判断步骤s2中的Excel报表文件的单元格是否需要自动填充,若是, 则根据步骤s 1中的数据字典添加Excel单元格批注,绑定数据库内容;若否,则直接添加 Excel单元格批注,描述报表的基本信息。所述Excel单元格批注具体为根据脚本定义编写 的批注。
[0040] 在步骤s4中,利用步骤si中生成的解析程序调用步骤S3中生成的报表文件,形成 结果报表,结果报表具体为最终形成的基于Excel批注的报表。
[0041] 如图2所示,所述解析Excel单元格批注的具体步骤为:
[0042] 在步骤s41中,打开经步骤s3处理后的Excel报表文件;
[0043] 在步骤s42中,复制报表文件的Sheet,创建一个新的Sheet;
[0044] 在步骤s43中,获取步骤s43中新Sheet的所有批注内容,记录每个批注的单元格;
[0045] 在步骤s44中,解析步骤s43中的批注,得到报表类型及每个批注对应的信息;
[0046] 在步骤s45中,根据步骤s44中解析的批注得到的信息,查询数据库获得对应的数 据;
[0047] 在步骤s46中,根据步骤s44中得到的报表类型,对清单类型,统计重复性数据所对 应的单元格;
[0048] 在步骤s47中,将步骤s45和s46中得到的数据写入Sheet对应的单元格,形成最终 报表。
[0049] 本发明使用时,开发者需要根据数据库提供一份数据字典,并且根据具体的数据 库编写解析程序。报表设计人员可以是使用人员通过微软Excel办公软件,按格式要求制作 一个空白的Excel报表文件;在一个不需要自动填充数据的单元格内,添加一项符合脚本定 义格式的批注,用于描述报表格式等基本信息;在需要自动填充数据的单元格内,根据数据 字典添加符合脚本定义格式的批注,用于绑定数据库内容;解析程序调用Excel报表文件, 解析批注内容,查询数据库并输出数据,形成目的报表。
[0050] 有关脚本定义,其具体定义方式可见表1。
[0051] 表1:脚本定义栏目
[0055]以下两个实例,是根据本发明制作和打印的两份报表:
[0056]实例1:电能表检定原始纪录
[0057] -份空白报表,定义报表类型的批注,一份报表仅此一项,S = F表不本批注为报表 类型定义,了7口6 = 1^口01'1:表示为报告类型,〇6£3111丨=/表示空白数据填写"/",1'(^1?0¥=1表 示报表从第1行开始,BottomRow = 38表示报表至第38行结束;定义表头内容的批注,一份报 表可以有多项,S = H表示表头区域,T = PM_Meters及F = SerialNo表示该单元格需要填充数 据表PM_Meters的SerialNo字段的内容;定义明细数据的批注,一份报表一般有多项,S = D 表示明细区域,T = PM_Error及F = Error 1表示该单元格需要填充数据表PM_Error的Error 1 字段的内容,M=Imax 1.0表示需要符合条件关键字为Imax 1.0,最后生成新的报表。
[0058] 实例2:电能表检定纪录清单
[0059] -份清单格式的报表,定义报表类型的批注,一份报表仅此一项,S = Define表示 本批注为报表类型定义,TopRow=l表示报表从第1行开始,BottomRow = 30表示报表至第30 行结束,Type = List表示本报表类型为清单格式,Max = 20表示每页上最多输出20条纪录, 0rientation = H表示记录按行排列;定义报表明细数据的批注,S = Detail表示明细区域,T = PM_Meters及F = SerialNo表;^本单元格填充PM_Meters数据表SerialNo字段的内容,N = 1-10表示本区域输出第1至第10条记录,最后生成新的报表。
【主权项】
1. 一种基于Excel批注的报表生成方法,其特征在于,该方法包括下列步骤: (1) 定义脚本格式,生成数据字典和解析程序; (2) 生成Excel报表文件; (3) 判断(2)中的Excel报表文件的单元格是否需要自动填充,若是,则根据(1)中的数 据字典添加 Excel单元格批注,绑定数据库内容;若否,则直接添加 Excel单元格批注,描述 报表的基本信息; (4) 利用(1)中生成的解析程序调用(3)中生成的报表文件,形成结果报表。2. 根据权利要求1所述的基于Excel批注的报表生成方法,其特征在于,所述脚本格式 包括报表类型、自动数据的排列方式、报表的区域、对应的数据表和数据字段、关联的条件、 空数据的默认格式、数据的单位以及数据的转换方式。3. 根据权利要求2所述的基于Excel批注的报表生成方法,其特征在于,所述报表类型 包括证书、通知书、测试报告以及清单。4. 根据权利要求1所述的基于Excel批注的报表生成方法,其特征在于,所述数据字典 为生成报表的数据库的定义。5. 根据权利要求1所述的基于Excel批注的报表生成方法,其特征在于,所述解析程序 为解析Exce 1单元格批注的程序。6. 根据权利要求3所述的基于Excel批注的报表生成方法,其特征在于,所述步骤(4)具 体为: (41) 获取经步骤(3)处理后的Excel报表文件; (42) 复制所述Excel报表文件的Sheet,创建一个新Sheet; (43) 获取步骤(43)中新Sheet的所有批注内容,记录每个批注的单元格; (44) 解析(43)中的批注,得到报表类型及每个批注对应的信息; (45) 根据(44)中解析的批注得到的信息,查询数据字典获得对应的数据; (46) 根据(44)中得到的报表类型,对报表类型为清单的新Sheet,统计重复性数据所对 应的单元格; (47) 将(45)和(46)中得到的数据写入新Sheet对应的单元格,形成最终报表。7. 根据权利要求4所述的基于Excel批注的报表生成方法,其特征在于,所述数据库为 包含需要输出内容的关系型数据库。8. 根据权利要求1所述的基于Excel批注的报表生成方法,其特征在于,所述Excel报表 文件具体为基于Excel的特定格式的空白报表文件。9. 根据权利要求1所述的基于Excel批注的报表生成方法,其特征在于,所述Excel单元 格批注具体为根据脚本定义编写的批注。
【文档编号】G06F9/44GK105893053SQ201610250773
【公开日】2016年8月24日
【申请日】2016年4月21日
【发明人】王新刚, 朱铮, 朱彬若, 张垠, 江剑峰, 翁素婷, 顾臻, 陈金涛, 吴颖, 盛青
【申请人】国网上海市电力公司, 华东电力试验研究院有限公司