JAVA解析Excel工具easyexcel

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到KB级别,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便

相关文档

二方包

com.alibaba

easyexcel

{latestVersion}

最新版本

VERSION : 1.0.2

维护者

姬朋飞(玉霄)

快速开始

读Excel

public void noModelMultipleSheet() {

InputStream inputStream = getInputStream("2007NoModelMultipleSheet.xlsx");

try {

ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null,

new AnalysisEventListener>() {

@Override

public void invoke(List object, AnalysisContext context) {

System.out.println(

"当前sheet:" + context.getCurrentSheet().getSheetNo() + " 当前行:" + context.getCurrentRowNum()

+ " data:" + object);

}

@Override

public void doAfterAllAnalysed(AnalysisContext context) {

}

});

reader.read();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

inputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

写Excel

@Test

public void test1() throws FileNotFoundException {

OutputStream out = new FileOutputStream("/Users/jipengfei/78.xlsx");

try {

ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);

//写第一个sheet, sheet1 数据全是List 无模型映射关系

Sheet sheet1 = new Sheet(1, 0,ExcelPropertyIndexModel.class);

writer.write(getData(), sheet1);

writer.finish();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

联系我们

有问题阿里同事可以通过钉钉找到我,阿里外同学可以通过git留言。其他技术非技术相关的也欢迎一起探讨。

Java写Excel时OOM_JAVA解析Excel工具避免OOM相关推荐

  1. SheetJS - XLS sheet_to_json() 方法解析 Excel 时不解析表格标题(表格第一行或N行)

    前言 官方文档:https://github.com/rockboom/SheetJS-docs-zh-CN 在 Vue 项目中,做 Excel(*.xls) 导入并预览表格功能时, 出现了表格第一行 ...

  2. java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

  3. 用程序同步mysql数据库表_初次用Java写了个数据库表同步工具

    介绍 java 程序编写,真正跨平台. 传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步.作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的 ...

  4. php抓取dom处理后数据,写爬虫时PHP解析HTML最高效的方法那就是用DomCrawler!

    需求来源,需要用PHP解析HTML提取我想要的数据 用PHP写网站爬虫的时候,需要把爬取的网页进行解析,提取里面想要的数据,这个过程叫做网页HTML中数据结构化. 很多人应该知道用phpQuery像J ...

  5. 毕业时候写的一个PE解析小工具(MFC源码)

    这么快就成了前年毕业的老家伙了.在整理硬盘里的代码和文档的时候翻出刚毕业时候写的一个小东西,想起来那时候在武汉的小河西村,暗无天日的租房里屌丝的写着程序的日子.一晃这么久了.还是混的这鸟样.悲伤逆流成 ...

  6. mysql java中文乱码_解决JAVA写mysql时出现中文乱码的现象

    参考地址:http://www.cnblogs.com/amboyna/archive/2008/06/18/1224570.html 今天部署已有一个java服务到另一台机器时出现写入数据库中文乱码 ...

  7. 帮我用java 写个二维码识别工具

    好的,那么首先你需要使用一个 Java 二维码库来生成和解析二维码.其中最常用的二维码库有 Zxing 和 QRGen.你可以使用 Maven 或者 Gradle 来管理这些库的依赖. 首先,你需要将 ...

  8. java写创建对象时找不到符号_在JDK 1.8上构建java代码时找不到符号错误

    我在maven上用JDK 1.8构建Java代码.在构建过程中,我得到了cannot find symbol error. maven上的错误堆栈跟踪: [INFO] ---------------- ...

  9. java 写文件时,输入换行字符.

    用String   crlf=System.getProperty( "line.separator "),这个crlf就是一个回车换行符,这样跨OS也不用怕了.不建议用硬编码如\ ...

最新文章

  1. shiro框架的使用及扩展
  2. 三十三、分治算法---汉诺塔问题
  3. Wxwinter.BPM类库更新
  4. 植物大战僵尸食人花无cd逆向分析
  5. 汇编中ah,al,ax;es,cs,ds,ss;
  6. 面试题29. 顺时针打印矩阵
  7. Selenium IDE安装和检查获取的控件路径技巧
  8. php父类继承子类_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...
  9. php怎么截取数组最后元素,PHP如何获取数组最后一个元素的键和值?(图文+视频)...
  10. window下从python开始安装科学计算环境
  11. gateway网关_公司要把网关Zuul换成Gateway,再难也得顶上
  12. 百度云的高速下载技巧系列4---Village(原名山寨云)(安卓)
  13. 微信小程序下拉刷新不回弹
  14. 服务端软件安全测评标准及实施指南 V1.0
  15. 博乐科技2022校招内推
  16. PC usb蓝牙发射器
  17. 手机里微信更换了头像电脑没同步
  18. centos7防火墙开放端口,附开放samba特定端口实例
  19. Python3从零入门机器学习:第一章 简介
  20. AD出现 “Net Tie failed verification”如何解决?

热门文章

  1. 人生之路1.18.05优化
  2. API Hook完全手册 1
  3. 五、XMLTomcatHttp协议
  4. mysql 在cmd命令行下操作遇到的转义字符
  5. iterative farthest point sample (IFPS or FPS)
  6. 分治法、动态规划法、回溯法、贪心法简单叙述
  7. flex 换行布局,最后一行不满时问题处理
  8. 清除浏览器cookie
  9. 微电子新手入门之ADS常用操作——ADS的port与layout不能相连
  10. FlyAi实战之MNIST手写数字识别练习赛(准确率99.55%)