[发明专利]一种基于模板和文件追加写的excel数据处理方法和工具有效
申请号: | 202110416916.5 | 申请日: | 2021-04-19 |
公开(公告)号: | CN112818655B | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 冉鹏程 | 申请(专利权)人: | 中建电子商务有限责任公司 |
主分类号: | G06F40/186 | 分类号: | G06F40/186;G06F40/18;G06F16/81 |
代理公司: | 成都睿道专利代理事务所(普通合伙) 51217 | 代理人: | 薛波 |
地址: | 610031 四川省成都市青*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模板 文件 追加 excel 数据处理 方法 工具 | ||
本发明提供了一种基于模板和文件追加写的excel数据处理方法和工具,方法包括:获取xml配置、excel模板以及源数据;对xml配置解析获取配置信息;对excel模板解析创建空白的新excel;将excel模板的数据内容逐行导出到新excel,根据配置信息的判断结果对新excel执行数据内容导入后的行进行源数据填充;当内存缓存行数超过阈值时,将数据从内存写到硬盘。本发明通过excel模板和xml配置,推算出需要导出的excel的各行数据、样式,实现文件的追加写,减少内存资源消耗;通过描述数据类型和坐标信息的配置放置到xml,利用xml的特性以及数据结构表现形式,可以实现良好的扩展性和可维护性。
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种基于模板和文件追加写的excel数据处理方法和工具。
背景技术
由于excel具有便携的数据存储和强大的数据处理能力,常常作为各类系统的辅助工具,用于数据的存储、加工、转移等。excel数据导出的场景往往随着业务的发展变得越来越复杂,并且随着数据量的增加,excel数据导出的性能及资源消耗等问题,往往成为系统的瓶颈。常见的excel数据导出可以分为5大类:横表(如考勤记录表)、静态竖表(如统计报表)、动态竖表(如包含履历的简历表)、树形表(如行政区域表)和特殊表,其中特殊表是指包含了一些需要定制生成复杂的背景色、字体、合并单元格等样式或内容的表格,很难实现通用性,并且为非常见的表格类型,所以对于通用型excel导出工具,重点主要在于实现前4类表格的导出功能。
excel表格由两大部分组成:内容和样式,在导出内容的同时,往往还需要赋予合理的样式,在导出excel之前,设置样式的最方便的地方就是模板。
然而,现有的方法中存在如下的缺陷:
(1)直接用开源的类库apache POI来创建workbook对象来生成excel文件,以进行excel数据的导出的方法中,可以导出含有excel格式(例如,合并单元格、设置单元格背景颜色等)的excel文件,也就是说,导出后的文件仍然具有上述的excel格式,然而,由于apache POI类库的workbook对象在上述导出方法(例如,在上述导出方法中执行aDDRow()的指令)上消耗内存非常严重,因此,在内存一定的情况下,无法导出含大量数据的excel文件,例如,当服务器JVM的最大堆内存只有1-2G、且待导出的excel文件的列数为50至60时,由于内存的限制导致只能同时导出1万至2万条的excel数据,其中,上述一条数据指的是excel文件中的一行记录的数据。
(2)按照CSV文本格式直接写数据流生成CSV格式文件导出的方法,可以在内存一定的情况下导出的含大量数据的excel文件(例如,当服务器JVM的最大堆内存只有1-2G、且待导出的excel文件的列数为50至60时,可以导出20-40万条的数据),但是,导出后的文件并不具有excel格式(即,不包括合并单元格、设置单元格背景颜色等),这是由于CSV格式是用逗号隔开的文本文档,因此导出的文件只能展示简单的二维数据表格,不支持excel格式(例如合并单元格,设置单元格背景颜色等),只能展示简单的二维数据表格。
(3)阿里开源的easyexcel的方法,easyexcel导出excel的要素包括excel模板a、数据、新excel,将数据的信息(字段名、类型、填充样式等)配置到模板a里,通过解析excel模板并复制一份模板文件b,获取数据的配置信息及需要填充的坐标位置后,将b中的配置信息清除,得到数据填充前的模板框架,再将数据填充到b中,实现数据的导出。但是easyexcel配置的灵活性较差,不能满足枚举、集合等数据类型的导出;且针对复杂类型的excel导出时,需要将所有的数据放置到内存中,资源消耗大,容易造成内存溢出。
针对上述问题,目前尚未提出有效的解决方案;因此,如何实现一个开发效率高、可维护性强、性能良好、使用范围广的通用型excel导出工具是目前急于解决的问题。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中建电子商务有限责任公司,未经中建电子商务有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110416916.5/2.html,转载请声明来源钻瓜专利网。