一种电子报表生成方法及装置的制造方法

文档序号:8905086阅读:346来源:国知局
一种电子报表生成方法及装置的制造方法
【技术领域】
[0001] 本发明设及电子报表技术领域,更具体地说,设及一种电子报表生成方法及装置。
【背景技术】
[0002] 电子报表是很多商业应用系统中用于数据对账、展示、分析、统计等功能的电子文 件,作为商业应用系统中的重要组成部分,电子报表的数据量逐日增大且电子报表的格式 日趋复杂。
[0003] 例如,在代理财政综合服务的系统建设中,某银行需要按照财政部、人民银行的要 求生成各类日报、月报、年报等,所要出具的电子报表的数据规模W及格式要求如下:
[0004] (1)数据量在数万行到十几万行之间。在一些交易量较大的工作日中,财政日报的 数据记录经常会有数万条,而全年利息计算时所要处理的数据量也将达到数十万条。
[0005] (2)财政部、人民银行等单位的报表格式较复杂,对分页、分栏、空行、单元格行高、 列宽、字体、合并单元格等报表样式也有较严格的要求。
[0006] (3)一份报表不能分解成多张完成,也不能在表内分多个sheet展不。
[0007]W财政授权支出日报为例来说明电子报表的格式要求,要求对所有的数据行进行 分页,每页共计24行,同时,在每一页内,要求对所有数据分两列显示,左右各24条数据,序 号按照先左后右的顺序递增,对每个单元格中的中文和金钱等都各有要求,另外,对于制表 日期、当前页数、总页数等信息要随时间、页码自动变更。
[0008]目前生成电子报表的工具分别是;采用ApacheP0I类库操作Excel的各类工具, 比如润乾报表、Excel化iIs(-种基于ApacheP0I类库的java报表制作工具)和JXLS(- 种基于ApacheP0I类库的java报表制作工具)等。

【发明内容】

[0009] 有鉴于此,本发明的目的是提供一种电子报表生成方法及装置,用于提供一种不 基于ApacheP0I类库等现有技术的电子报表生成方式。为了实现上述目的,本发明提供如 下技术方案:
[0010] 本发明一种电子报表生成方法,所述方法包括:
[0011] 获取所述电子报表对应的模板文件;
[0012] 对所述模板文件进行解析,得到需进行修改的多个底层可扩展标记语言文件;
[0013] 依据所述多个底层可扩展标记语言文件,对所述多个底层可扩展标记语言文件在 程序中对应的基础类进行初始化,得到所述多个底层可扩展标记语言文件中的sheet,xml 文件和sharedStrings.xml文件中指向数据的链接行,其中所述sheet,xml文件为电子表 格中工作表的文件,sharedStrings.xml文件用于存储所述电子报表中每一个sheet的真 实数据;
[0014] 获取其他底层可扩展标记语言文件的修改数据W及依据所述链接行中的每个组 件获取所述sheet,xml文件和sharedStrings.xml文件中每个单元格所需的真实数据,其 中每个组件用于指向所述电子报表中每个单元格所需数据;
[0015] 使用文件输入输出流的方式将所述真实数据和所述修改数据写入到对应的所述 多个底层可扩展标记语言文件中;
[0016] 将写入数据的多个底层可扩展标记语言文件进行压缩,并将压缩后得到的压缩包 的文件后缀名修改为所述电子报表对应的后缀名,W得到所述电子报表。
[0017] 优选地,所述使用文件输入输出流的方式将所述真实数据和所述修改数据写入到 对应的所述多个底层可扩展标记语言文件中,包括:
[0018] 将所述真实数据和所述修改数据写入到内存中;
[0019] 当所述内存中所述数据的数据量大于第一预设值时,从所述内存中获取数据量为 第二预设值的数据;
[0020] 使用文件输入输出流的方式将从内存中获取的数据写入到对应的所述多个底层 可扩展标记语言文件中。
[0021] 优选地,所述依据所述多个底层可扩展标记语言文件,对所述多个底层可扩展标 记语言文件在程序中对应的基础类进行初始化,得到所述多个底层可扩展标记语言文件中 的sheet, xml文件和sharedStrings. xml文件中指向数据的链接行,包括;
[0022] 依据所述多个底层可扩展标记语言文件,对所述多个底层可扩展标记语言文 件在程序中对应的基础类进行初始化,并采用自上而下的方式对sheet, xml文件和 sharedStrings. xml文件中的组件进行处理,得到所述多个底层可扩展标记语言文件中的 sheet, xml文件和sharedStrings. xml文件中指向数据的链接行。
[0023] 优选地,所述使用文件输入输出流的方式将所述真实数据写入到对应的所述多个 底层可扩展标记语言文件中,包括:
[0024] 判断从数据源获取到的真实数据是否可W直接写入对应的所述多个底层可扩展 标记语言文件中;
[0025] 如果是,使用文件输入输出流的方式将所述真实数据写入到对应的所述多个底层 可扩展标记语言文件中;
[0026] 如果否,对从数据源中获取的真实数据进行处理W使其可W写入到对应的所述多 个底层可扩展标记语言文件中,并使用文件输入输出流的方式将处理后的真实数据写入到 对应的所述多个底层可扩展标记语言文件中。
[0027] 优选地,当数据源是数据库时,使用S化标签获取数据库中的真实数据,当数据源 是文件时,使用File标签获取文件中的真实数据。
[0028] 本发明提供一种电子报表生成装置,所述装置包括:
[0029] 第一获取单元,用于获取所述电子报表对应的模板文件;
[0030] 解析单元,用于对所述模板文件进行解析,得到需进行修改的多个底层可扩展标 记语言文件;
[0031] 初始化单元,用于依据所述多个底层可扩展标记语言文件,对所述多个底层可扩 展标记语言文件在程序中对应的基础类进行初始化,得到所述多个底层可扩展标记语言文 件中的sheet, xml文件和sharedStrings. xml文件中指向数据的链接行,其中所述sheet, xml文件为电子表格中工作表的文件,sharedStrings. xml文件用于存储所述电子报表中 每一个sheet的真实数据;
[0032] 第二获取单元,用于获取其他底层可扩展标记语言文件的修改数据W及依据所述 链接行中的每个组件获取所述sheet, xml文件和sharedStrings. xml文件中每个单元格所 需的真实数据,其中每个组件用于指向所述电子报表中每个单元格所需数据;
[0033] 写入单元,用于使用文件输入输出流的方式将所述真实数据和所述修改数据写入 到对应的所述多个底层可扩展标记语言文件中;
[0034] 修改单元,用于将写入数据的多个底层可扩展标记语言文件进行压缩,并将压缩 后得到的压缩包的文件后缀名修改为所述电子报表对应的后缀名,W得到所述电子报表。 [00巧]优选地,所述写入单元包括:
[0036] 第一写入子单元,用于将所述真实数据和所述修改数据写入到内存中;
[0037] 获取子单元,用于当所述内存中所述数据的数据量大于第一预设值时,从所述内 存中获取数据量为第二预设值的数据;
[0038] 第二写入子单元,用于使用文件输入输出流的方式将从内存中获取的数据写入到 对应的所述多个底层可扩展标记语言文件中。
[0039] 优选地,所述初始化单元具体用于:依据所述多个底层可扩展标记语言文件,对所 述多个底层可扩展标记语言文件在程序中对应的基础类进行初始化,并采用自上而下的方 式对sheet, xml文件和sharedStrings. xml文件中的组件进行处理,得到所述多个底层可 扩展标记语言文件中的sheet, xml文件和sharedStrings. xml文件中指向数据的链接行。
[0040] 优选地,所述写入单元包括:
[0041] 判断子单元,用于判断从数据源获取到的真实数据是否可W直接写入对应的所述 多个底层可扩展标记语言文件中;
[0042] 第=写入子单元,用于当所述判断子单元判断从数据源获取到的真实数据可W直 接写入对应的所述多个底层可扩展标记语言文件中时,使用文件输入输出流的方式将所述 真实数据写入到对应的所述多个底层可扩展标记语言文件中;
[0043] 处理子单元,用于当所述判断子单元判断从数据源获取到的真实数据不可W直接 写入对应的所述多个底层可扩展标记语言文件中时,对从数据源中获取的真实数据进行处 理W使其可W写入到对应的所述多个底层可扩展标记语言文件中,并使用文件输入输出流 的方式将处理后的真实数据写入到对应的所述多个底层可扩展标记语言文件中。
[0044] 优选地,当数据源是数据库时,使用S化标签获取数据库中的真实数据,当数据源 是文件时,使用File标签获取文件中的真实数据。
[0045] 与现有技术相比,本发明的优点如下:
[0046] 本发明提供的电子报表生成方法及装置,在获取到电子报表对应的模板文件 后,可W对模板文件进行解析,得到需进行修改的多个底层XML巧xtensibleMarkup Language,可扩展标记语言)文件,然后通过对其进行一系列处理后得到一压缩包,再将 该压缩包的文件后缀名修改为所述电子报表对应的后缀名,W得到所述电子报表,因此由 Microsoft开发的WXML为基础的电子表格都可W采用本发明实施例提供的电子报表生 成方法得到,并且从本发明实施例提供的电子报表生成方法及装置所示流程来看,其在生 成电子报表过程中并未基于ApacheP0I类库等现有技术,而是一种新的有别于现有基于 ApacheP0I类库等现有技术的电子报表生成方式。
【附图说明】
[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据 提供的附图获得其他的附图。
[0048] 图1为本发明实施例提供的电子报表生成方法的一种流程图;
[0049] 图2为本发明实施例提供的一种模板文件的示意图;
[0050] 图3为本发明实施例提供的模板文件修改解压后得到的文件夹中的文件结构图;
[0051] 图4为本发明实施例提供的[Content_Types].xml的文档结构图;
[0052] 图5为本发明实施例提供的woricbook.xml的文档结构图;
[0053] 图6为本发明实施例提供的wor化ook.xml.rels的文档结构图;
[0054]
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1