Java 8 一行代码解决了空指针问题,太厉害了…
List中remove()方法的陷阱,被坑惨了!
25000 字详解 23 种设计模式,原来可以这么简单!
最牛逼的 Java 日志框架,性能无敌,横扫所有对手…
这玩意比ThreadLocal叼多了,吓得我赶紧分享出来。
来源:www.jianshu.com/p/4e6aa6342b33
EasyExcel是阿里巴巴开源poi插件之一,主要解决了poi框架使用复杂,sax解析模式不容易操作,数据量大起来容易OOM,解决了POI并发造成的报错。主要解决方式:通过解压文件的方式加载,一行一行的加载,并且抛弃样式字体等不重要的数据,降低内存的占用。
EasyExcel优势
-
注解式自定义操作。
-
输入输出简单,提供输入输出过程的接口
-
支持一定程度的单元格合并等灵活化操作
二、常用注解
-
@ExcelProperty
指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。 -
@ExcelIgnore
默认所有字段都会和excel去匹配,加了这个注解会忽略该字段 -
@DateTimeFormat
日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat -
@NumberFormat
数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat -
@ExcelIgnoreUnannotated
默认不加ExcelProperty 的注解的都会参与读写,加了不会参与
三、依赖
com.alibaba
easyexcel
2.1.4
javax.servlet
javax.servlet-api
4.0.1
provided
com.alibaba
fastjson
1.2.47
四、监听
/**
* EasyExcel 导入监听
*/
public class ExcelListener extends AnalysisEventListener {
//可以通过实例获取该值
private List datas = new ArrayList();
@Override
public void invoke(Object o, AnalysisContext analysisContext) {
datas.add(o);//数据存储到list,供批量处理,或后续自己业务逻辑处理。
doSomething(o);//根据自己业务做处理
}
private void doSomething(Object object) {
//1、入库调用接口
}
public List getDatas() {
return datas;
}
public void setDatas(List datas) {
this.datas = datas;
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// datas.clear();//解析结束销毁不用的资源
}
}
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
0839744608)]
[外链图片转存中…(img-VuYJlHHZ-1710839744609)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-Jiqzv2Iw-1710839744610)]