吴门户网
热点专题 当前位置:首页 > 热点专题 > 正文

使用EasyExcel导入导出Excel报表-JAVA解析Excel工具

一、EasyExcel概述?

Java解析并生成Excel。着名的框架包括Apache poi和jxl。但是他们都有一个严重的问题就是非常消耗内存。poi有一个SAX API,可以在一定程度上解决一些内存溢出问题,但是POI仍然存在一些缺陷,比如07版Excel的解压和解压后的存储都是在内存中完成的,内存消耗仍然很大。Easyexcel重写了poi对07版excel的分析,使用POI sax可以将3M excel的内存需求从大约100米减少到几米,并且在较大的excel中不会出现内存溢出。版本03依赖于POI的萨克斯模式。上层封装了模型转换,使得用户使用起来更加方便快捷。

github地址:

使用文档:

官方数据,64M内存读取75M(46W行,25列)1分钟内超越,当然,快速模式可以更快。但是,内存使用量将略高于100兆:

2,EasyExcel公共函数

Read Excel

读取指定列的

下标或列名

读取多个工作表

日期的最简单方法, 数字或自定义格式转换

multi-head

synchronous return

read Header data

exception处理,例如数据转换

read

Write Excel

simple Write

in read

web而不创建对象

export only指定列

specific Write Column

complex Header Write

repeat多次写入(到单页或多页)

multi-head

Picture Export

Write

Column Width,Row Height

Custom Style

Merge Cells

根据模板

Use table写

Dynamic Header。 实时生成标题写

自动列宽(不太准确)

自定义拦截器(上述各点不满足,但在单元格操作中引用它)

不创建对象写

写在网上

写在网上并返回JSON

fill EXcel

simple fill

fill list

complex fill

complex fill with大量数据

水平填充

3,EasyExcel用法和调优

official除了文档外还提供了强大的演示代码。代码不会被粘贴,我只给maven坐标:

default大文件处理

default大文件处理将自动判断,内存存储将用于5M以下的共享字符串,占用内存约15-50M,文件存储将用于5M以上的共享字符串,然后将多个内存m设置为文件存储来存储临时共享字符串,默认为20M。除了共享字符串占用的内存之外,其他共享字符串占用的内存更少,因此它可以估计为10M,因此一个超大文件默认可以在30M左右读取。

根据实际需要配置内存

4。EasyExcel

1的核心原则。通过文件格式

屏幕快照 2018-01-22 上午8.52.08.png

2读取解压缩的文件。避免在sax模式下一次将所有数据加载到内存中

逐行解析,并逐行通知查看器解析结果。基础模板1 (2).png

3。丢弃不重要的数据

Excel在解析时将包括样式、字体、宽度和其他数据,但我们不关心这些数据。如果我们丢弃这些数据,内存使用将会大大减少。样式在Excel数据中占据很大的空间。

五、项目的优缺点

这个项目不是阿里的重点项目。目前,只有三个人来维护它。然而,该项目非常活跃,获得的明星数量非常高。它可以用于生产。但是,应该注意的是,目前还没有实现以下功能:

并发写入单个文件,读取

read picture

macro



吴门户网 版权所有© www.westagr.cn 技术支持:吴门户网 | 网站地图