Java写Excel时OOM_JAVA解析Excel工具避免OOM
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相关推荐
- SheetJS - XLS sheet_to_json() 方法解析 Excel 时不解析表格标题(表格第一行或N行)
前言 官方文档:https://github.com/rockboom/SheetJS-docs-zh-CN 在 Vue 项目中,做 Excel(*.xls) 导入并预览表格功能时, 出现了表格第一行 ...
- 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 ...
- 用程序同步mysql数据库表_初次用Java写了个数据库表同步工具
介绍 java 程序编写,真正跨平台. 传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步.作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的 ...
- php抓取dom处理后数据,写爬虫时PHP解析HTML最高效的方法那就是用DomCrawler!
需求来源,需要用PHP解析HTML提取我想要的数据 用PHP写网站爬虫的时候,需要把爬取的网页进行解析,提取里面想要的数据,这个过程叫做网页HTML中数据结构化. 很多人应该知道用phpQuery像J ...
- 毕业时候写的一个PE解析小工具(MFC源码)
这么快就成了前年毕业的老家伙了.在整理硬盘里的代码和文档的时候翻出刚毕业时候写的一个小东西,想起来那时候在武汉的小河西村,暗无天日的租房里屌丝的写着程序的日子.一晃这么久了.还是混的这鸟样.悲伤逆流成 ...
- mysql java中文乱码_解决JAVA写mysql时出现中文乱码的现象
参考地址:http://www.cnblogs.com/amboyna/archive/2008/06/18/1224570.html 今天部署已有一个java服务到另一台机器时出现写入数据库中文乱码 ...
- 帮我用java 写个二维码识别工具
好的,那么首先你需要使用一个 Java 二维码库来生成和解析二维码.其中最常用的二维码库有 Zxing 和 QRGen.你可以使用 Maven 或者 Gradle 来管理这些库的依赖. 首先,你需要将 ...
- java写创建对象时找不到符号_在JDK 1.8上构建java代码时找不到符号错误
我在maven上用JDK 1.8构建Java代码.在构建过程中,我得到了cannot find symbol error. maven上的错误堆栈跟踪: [INFO] ---------------- ...
- java 写文件时,输入换行字符.
用String crlf=System.getProperty( "line.separator "),这个crlf就是一个回车换行符,这样跨OS也不用怕了.不建议用硬编码如\ ...
最新文章
- shiro框架的使用及扩展
- 三十三、分治算法---汉诺塔问题
- Wxwinter.BPM类库更新
- 植物大战僵尸食人花无cd逆向分析
- 汇编中ah,al,ax;es,cs,ds,ss;
- 面试题29. 顺时针打印矩阵
- Selenium IDE安装和检查获取的控件路径技巧
- php父类继承子类_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...
- php怎么截取数组最后元素,PHP如何获取数组最后一个元素的键和值?(图文+视频)...
- window下从python开始安装科学计算环境
- gateway网关_公司要把网关Zuul换成Gateway,再难也得顶上
- 百度云的高速下载技巧系列4---Village(原名山寨云)(安卓)
- 微信小程序下拉刷新不回弹
- 服务端软件安全测评标准及实施指南 V1.0
- 博乐科技2022校招内推
- PC usb蓝牙发射器
- 手机里微信更换了头像电脑没同步
- centos7防火墙开放端口,附开放samba特定端口实例
- Python3从零入门机器学习:第一章 简介
- AD出现 “Net Tie failed verification”如何解决?