资讯专栏INFORMATION COLUMN

POI如何高效导出百万级Excel数据?

lemanli / 2211人阅读

摘要:阅读原文如何高效导出百万级数据在一个具有统计功能的系统中,导出功能几乎是一定的,如何导出导出的数据有多少如何高效的导出简介什么是就不用介绍了,这里主要说明不同版本下每个下的行列限制。

阅读原文:POI如何高效导出百万级Excel数据?

在一个具有统计功能的系统中,导出excel功能几乎是一定的,如何导出excel?导出的数据有多少?如何高效的导出?

Excel简介
什么是excel就不用介绍了,这里主要说明不同版本下每个sheet下的行列限制。

版本区间 行数 列数 生成文件后缀
Excel 2003及以下 65535 256 xls
Excel 2007及以上 1048576 16384 xlsx

由上面可知 Excel 2003及以下是无法实现单sheet百万级的数据。

Apache POI

简介

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。

常用类

HSSF - 提供读写Microsoft Excel XLS格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
SXSSF - 一种基于XSSF的低内存占用的API(3.8版本开始出现)。
HWPF - 提供读写Microsoft Word DOC97格式档案的功能。
XWPF - 提供读写Microsoft Word DOC2003格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读Microsoft Visio格式档案的功能。
HPBF - 提供读Microsoft Publisher格式档案的功能。
HSMF - 提供读Microsoft Outlook格式档案的功能。

我们这里是导出Excel,所以使用的是前三个。

导出策略

方案

使用XSSF和SXSSF分别导入1w,10w,100w数据
使用SXSSF,SXSSF以10w分页,SXSSF多线程以10w分页导入100w数据

性能对比

时间不包含网络耗时

图片描述

类型 1w条/时间 10w条/时间 100w条/时间
XSSF 1331ms 10496ms 小心电脑

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73612.html

相关文章

  • Java Excel导入导出,基于XML和Easy-excel使用

    摘要:我想能不能像配置文件一样可配置的导入导出,那样使用起来就方便许多。配置和使用下面是员工信息模型。支持多种映射,使用英文逗号进行分割。导入时它会以分割前面的作为导入时使用的值,后面的作为导出时使用的值后面值进行逆推导出时同理。 1.前言 在工作时,遇到过这样的需求,需要灵活的对工单进行导入或导出,以前自己也做过,但使用不灵活繁琐。我想能不能像配置文件一样可配置的导入导出,那样使用起来就方...

    13651657101 评论0 收藏0
  • poi导出excel

    摘要:积分消费明细对账单其中,有四个参数,分别是,,,。导出读取数据库的信息,转成。 public void detailExport() { String sourceSystem = getPara(source_system); String dataDate = getPara(data_date); Integer pointsType = get...

    RayKr 评论0 收藏0
  • POI的使用及导出excel报表

    摘要:的使用及导出报表首先,了解是什么一基本概念是软件基金会的开放源码函式库,提供给程序对格式档案读和写的功能。 POI的使用及导出excel报表 首先,了解poi是什么? 一、基本概念 ​ Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、基本结构 ​ HSSF - 提供读写...

    Ilikewhite 评论0 收藏0
  • 自己写的简单java excel导入导出工具(封装POI

    Octopus 如何导入excel 如何导出excel Octopus Octopus 是一个简单的java excel导入导出工具. 如何导入excel 下面是一个excel文件中sheet的数据,有四个学生信息. studentId name sex inTime score 20134123 John M 2013-9-1 89 20124524 Joyce F 2012...

    xiangchaobin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<