EasyExcel实现Excel导入导出"/>
使用EasyExcel实现Excel导入导出
介绍
EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。
他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。
快速:快速的读取excel中的数据。
简洁:映射excel和实体类,让代码变的更加简洁。
大文件:在读写大文件的时候使用磁盘做缓存,更加的节约内存。
官方文档:/
引入依赖
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version>
</dependency>
创建实体类
package com.example.study.vo.sys;import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @author guochao* @version 1.0* @date 2023/10/18*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysClassifyExcelVo {@ExcelProperty(value = "id",index = 0)private Long id;@ExcelProperty(value = "名称",index = 1)private String name;@ExcelProperty(value = "类型",index = 2)private String type;@ExcelProperty(value = "上级id",index = 3)private Long parentId;@ExcelProperty(value = "排序",index = 4)private Long sort;
}
创建监听类
package com.itgc.test;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;import java.util.ArrayList;
import java.util.List;/*** @author guochao* @version 1.0* @date 2023/10/18*/
public class ExcelListener<T> extends AnalysisEventListener<T> {private List<T> data = new ArrayList<>();//读取exceL内容,//从第二行开始读取,把每行读取内容封装到t对象里面@Overridepublic void invoke(T t, AnalysisContext analysisContext) {data.add(t);}public List<T> getData(){return data;}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {}
}
使用
package com.itgc.test;import com.alibaba.excel.EasyExcel;
import com.example.study.vo.sys.SysClassifyExcelVo;import java.util.ArrayList;
import java.util.List;/*** @author guochao* @version 1.0* @date 2023/10/18*/
public class EasyExcelTest {public static void main(String[] args) {
// read();write();}//读操作public static void read(){//1 定义读取excel文件位置String fileName = "D://01.xlsx";//2 调用方法ExcelListener<SysClassifyExcelVo> excelListener = new ExcelListener<>();EasyExcel.read(fileName, SysClassifyExcelVo.class,excelListener).sheet().doRead();List<SysClassifyExcelVo> data = excelListener.getData();System.out.println(data);}//写操作public static void write(){List<SysClassifyExcelVo> list = new ArrayList<>();list.add(new SysClassifyExcelVo(1L,"分类1","课程",0L,0L));list.add(new SysClassifyExcelVo(2L,"分类1-1","课程",1L,1L));EasyExcel.write("D://02.xlsx",SysClassifyExcelVo.class).sheet("分类数据").doWrite(list);}
}
更多推荐
使用EasyExcel实现Excel导入导出
发布评论