POI简介

POI是Apache软件基金会用java编写的免费开源的跨平台的Java API,提供API给java程序对Microsoft Office格式档案读和写的功能,一般用来操作Excel文件。用javaPOI导出Excel时,需要考虑Excel版本和数据量的问题。

JavaPOI导出Excel有三种形式:

(1) 第一种HSSFWorkbook

POI导出Excel最常用的方式,局限是导出的行数最多为65535行,超出65536条后系统就会报错,此方式因为行数不足七万行所以一般不会发生内存不足的情况。

(2)第二种XSSFWorkbook

这种形式突破了HSSFWorkbook的65535行局限,对应excel2007(1048576行,16384列)扩展名为.xlsx,最多可以导出104万行,会有OOM内存溢出,原因是你所创建的book sheet row cell等此时是存在内存的并没有持久化。

(3)第三种SXSSFWorkbook

从POI3.8版本开始,提供了一种基于XSSF的低内存占用的SXSSF方式。对于大型excel文件的创建,一个关键问题就是,要确保不会内存溢出。对于大型excel的创建且不会内存溢出的,就只有SXSSFWorkbook了。它的原理很简单,用硬盘空间换内存(就像hash map用空间换时间一样)。

当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:Javaheap space;内存溢出错误。这时应该用SXSSFworkbook。

excel2003和excel2007对比:

大批量读写数据:

java模板导出excel_POI导出excel模板三种方式相关推荐

  1. Java:简述对象转换为字符串的三种方式

    Java:简述对象转换为字符串的三种方式 在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 一.(String)强制类型转换 使用 ...

  2. [转]asp.net导出数据到Excel的三种方法

    原文出处:asp.net导出数据到Excel的几种方法(1/3) .asp.net导出数据到Excel的几种方法(2/3).asp.net导出数据到Excel的几种方法(3/3) asp.net导出到 ...

  3. Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载

    场景 HSSFworkbook,XSSFworkbook,SXSSFworkbook区别 HSSFWorkbook: 是操作Excel2003以前(包括2003)的版本,扩展名是.xls:导出exce ...

  4. java数组初始_java数组初始化的三种方式

    第一种方式:通过给定数组长度来赋值: public static void main(String[] args) { // TODO Auto-generated method stub //第一种 ...

  5. java map string stu_Java Map遍历的三种方式 | 学步园

    最近经常碰到Map遍历的问题,在网上查找资料后,记录下,权当备忘~~~~~~ 这里给出了三种遍历的方式,注释中已说明各自方式的优点. package edu.hrbeu.cloud.testIterM ...

  6. java 循环依赖_Spring循环依赖的三种方式

    ​ 引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 第一 ...

  7. java创建QRCode二维码的三种方式

    自己在网上看视频学习了下如何使用java创建二维码,感觉还是挺有趣的,有小心思的还可以把秘密存入二维码中噢 视频源网址:http://www.imooc.com/learn/531 点击下载jar包 ...

  8. 详解Springboot下载Excel的三种方式

    https://www.jb51.net/article/216656.htm 汇总一下浏览器下载和代码本地下载实现的3种方式. (其实一般都是在代码生成excel,然后上传到oss,然后传链接给前台 ...

  9. 将datatable导出为excel的三种方式(转)

    一.使用Microsoft.Office.Interop.Excel.DLL 需要安装Office 代码如下: 2 publicstaticboolExportExcel(System.Data.Da ...

  10. Qt导出数据到EXCEL的两种方式

    一.导出到csv格式,这种格式不用安装office QString DModel::exportDataToCSV(QString lx) {QString dtStr="d:/" ...

最新文章

  1. 微信公众号自定义菜单跳转小程序
  2. rcp errata
  3. Entity Framework Core介绍(1)
  4. C++Primer:字面值常量类调用函数错误(p268书中示例报错)
  5. 汇编语言 masm常见报错原因
  6. 纸白银:交易简便成本低
  7. ASP.NET AjaxPro的应用 .AjaxPro使用中“XXX未定义”的一种解决方法(转载的)
  8. VB 写文件关联程序
  9. Flink 1.10 Container 环境实战
  10. VC2005字符集设置容易出错的问题!
  11. 安卓开发实现悬浮窗显示(全局显示),通过悬浮窗实时监控当前流量
  12. ASP.NET Core使用微软官方类库实现汉字简繁切换以及转拼音
  13. 高云FPGA系列教程(2):FPGA点灯工程创建、程序下载和固化
  14. Android身份证扫描
  15. 精通cobol--9.3.1 OCCURS语句的使用方法
  16. ios降级鸿蒙,ios14更新正式版能降级到ios13.7吗 苹果ios14怎么降级方法教程
  17. 【JavaEE】电商秒杀项目·第2章·基础项目搭建
  18. java apache commons_Apache commons(Java常用工具包)简介
  19. selenium被检测了怎么办?
  20. IMPERVA-WAF 设备替换方案

热门文章

  1. 2017年计算机类核心期刊,2017年北大版中文核心期刊要目总览目录.pdf
  2. Bat 无限弹窗(慎用)
  3. VMware 虚拟机安装系统
  4. MySQL常用函数大全(总结篇)
  5. 飞秋常见文件解决方案
  6. OCR图像识别与汽车后市场
  7. 层次分析法(小白必看手机查看)
  8. nvme驱动架构分析1
  9. 代码精进之代码规范(二)
  10. java在线订单系统源码_春哥酒店在线预订微信小程序源码系统正式发布!