[发明专利]导出excel数据的方法、存储介质及电子设备有效
申请号: | 201710773209.5 | 申请日: | 2017-08-31 |
公开(公告)号: | CN107632880B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 王舒岚 | 申请(专利权)人: | 深圳市丰巢科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/25 |
代理公司: | 广东良马律师事务所 44395 | 代理人: | 马戎 |
地址: | 518000 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 导出 excel 数据 方法 存储 介质 电子设备 | ||
本发明公开导出excel数据的方法、存储介质及电子设备,方法包括步骤:A、根据所需导出的excel数据总页数和每个sheet表单所需写入的页码数计算需要的sheet表单数量;B、生成SXSSFWorkbook对象,并针对每个sheet表单开启一个线程,将对应的excel数据写入SXSSFWorkbook对象中;C、当各线程执行完毕后,通过IO输出SXSSFWorkbook对象。本发明采用多线程,通过多点续作的方式,加快java对象占用的内存空间回收,降低内存占用,增强系统稳定性,扩展可导出的数据量,提高响应效率。
技术领域
本发明涉及Java技术开发领域,尤其涉及导出excel数据的方法、存储介质及电子设备。
背景技术
在实际应用中,有时需要一次性导出百万级别的excel格式数据,很容易出现java.lang.OutOfMemoryException异常(内存溢出),导致请求失败,甚至系统崩溃,同系统的其他服务也不能正常提供。
业内的普遍做法是以IO流的方式导出csv格式的数据,但csv格式不能设置样式和数据格式,满足不了业务需求。或者要求用户尽量缩短查询范围,多次导出,然后由业务方对多个文件进行合并,极大的加大了工作量,而且容易遗漏某些情况导致数据误差。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供导出excel数据的方法、存储介质及电子设备,旨在解决现有技术中excel数据导出方式存在的稳定性差、可导出的数据量有限等问题。
本发明的技术方案如下:
一种基于多线程的多点续作方式导出excel数据的方法,其中,包括步骤:
A、根据所需导出的excel数据总页数和每个sheet表单所需写入的页码数计算需要的sheet表单数量;
B、生成SXSSFWorkbook对象,并针对每个sheet表单开启一个线程,将对应的excel数据写入SXSSFWorkbook对象中;
C、当各线程执行完毕后,通过IO输出SXSSFWorkbook对象。
所述的基于多线程的多点续作方式导出excel数据的方法,其中,所述步骤A具体包括:
A1、预先设置每页查询数量和每个sheet表单最多可以写入的页码数;
A2、获取excel数据总页数;
A3、根据excel数据总页数和每个sheet表单所需写入的页码数计算需要的sheet表单数量。
所述的基于多线程的多点续作方式导出excel数据的方法,其中,所述步骤B具体包括:
B1、创建SXSSFWorkbook对象;
B2、针对每个sheet表单开启一个线程,创建sheet表单以及相应表头信息,计算sheet表单所对应的页面范围;
B3、分页查询excel数据,并将对应页面范围内的excel数据写入SXSSFWorkbook对象。
所述的基于多线程的多点续作方式导出excel数据的方法,其中,所述步骤C具体包括:
C1、监控各子线程是否执行完毕;
C2、当所有子线程都执行完毕后,将生成的SXSSFWorkbook对象进行输出。
所述的基于多线程的多点续作方式导出excel数据的方法,其中,所述步骤A1中,每页查询数量为pageSize,每个sheet表单最多可以写入的页码数为sheetSize,pageSize*sheetSize≤1048576。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市丰巢科技有限公司,未经深圳市丰巢科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710773209.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置