[发明专利]数据导出方法和装置有效
申请号: | 201210161154.X | 申请日: | 2012-05-22 |
公开(公告)号: | CN103425692A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 池元嘉;孙轶;沈秀辉 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;江舟 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 导出 方法 装置 | ||
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据导出方法和装置。
背景技术
在Java Web后台系统中,常常会遇到导出含大量数据的Excel的场景需求。当前在Java开发中导出Excel的常规做法有两种:一种方法是直接用开源的类库apache POI来创建workbook对象来生成Excel文件来导出,这种方法可以导出含有Excel格式的Excel文件(如合并单元格,设置单元格背景颜色等);另外一种方法是按照CSV文本格式直接写数据流生成CSV格式文件导出。
然而,现有的方法中存在如下的缺陷:
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格式(例如合并单元格,设置单元格背景颜色等),只能展示简单的二维数据表格。
针对相关技术中的上述问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种数据导出方法和装置,以解决相关技术中无法导出含大量数据的EXCEL文件、且导出后的数据包括原EXCEL文件中的EXCEL格式的问题。
根据本申请的一个方面,提供了一种数据导出方法,该方法包括:根据待导出的数据记录的内容属性和格式属性构建Velocity模板,其中,Velocity模板包括:分别与内容属性和格式属性对应的内容属性变量和格式属性变量;根据所需获取的数据记录的总条数N和每次填充Velocity模板所需的数据记录的条数M设置填充Velocity模板的次数T,其中,T=(N+M-1)/M,/为整除;按照以下步骤执行T次对Velocity模板的填充:从数据库中获取M条数据记录,将每条获取到的数据记录中的内容属性的值和格式属性的值赋值给Velocity模板中对应的内容属性变量和格式属性变量;根据执行了T次对Velocity模板的填充之后得到的结果生成XML文档。
优选的,根据待导出的数据记录的内容属性和格式属性构建Velocity模板的步骤包括:获取数据记录文档,其中,数据记录文档中包括内容属性和格式属性;将数据记录文档转换成XML文档,其中,转换成的XML文档包括内容属性和格式属性;根据转换成的XML文档中的格式构建Velocity模板。
优选的,获取数据记录文档的步骤包括:通过交互界面接收用户输入的一条或多条数据记录,其中,输入的数据记录包括内容属性和格式属性;将用户输入的一条或多条数据记录保存为数据记录文档。
优选的,获取数据记录文档的步骤包括:从数据库中获取M条数据记录中的一条或多条数据记录,其中,获取的数据记录包括内容属性和格式属性;将获取的一条或多条数据记录保存为数据记录文档。
优选的,根据执行了T次对Velocity模板的填充之后得到的结果生成XML文档的步骤包括:Velocity渲染引擎通过调用Velocity渲染引擎内部JAVA程序来将填充得到结果渲染成XML文档。
优选的,在根据执行了T次对Velocity模板的填充之后得到的结果生成XML文档之后,还包括:将生成的XML文档的后缀名改为EXCEL文档的后缀名;和/或将生成的XML文档进行压缩。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210161154.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种核电站模拟机的数据存储、查询及更新方法
- 下一篇:访问纸媒体的方法及设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置