当前位置: 首页 > news >正文

使用EasyExcel实现Excel导入导出

介绍

EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。
他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。
快速:快速的读取excel中的数据。
简洁:映射excel和实体类,让代码变的更加简洁。
大文件:在读写大文件的时候使用磁盘做缓存,更加的节约内存。

官方文档:https://easyexcel.opensource.alibaba.com/

引入依赖

<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);}
}
http://www.lryc.cn/news/199816.html

相关文章:

  • 京东手机销售数据:2023年9月京东手机行业TOP10品牌排行榜
  • 常量字符串
  • 【活体检测】“深度学习驱动的人脸反欺诈检测系统:性能提升与多模型支持“
  • Howler.js HTML5声音引擎
  • centos 7.9每天定期发送最新备份文件到另外一台服务器
  • 一文全面了解:一个神奇的 react-antd-admin 动态菜单
  • 二叉树,堆排序及TopK问题
  • iphone xr密码错误太多次 连接itunes
  • 设置RabbitMQ超时时间
  • QT计时器
  • 3-k8s-镜像仓库harbor搭建
  • 0基础学习PyFlink——模拟Hadoop流程
  • 【无人机】太阳能伪卫星VoLTE无人机设计(Matlab代码实现)
  • 2023.10.20 LED驱动
  • 【力扣刷题】回文链表、环形链表、合并两个有序链表
  • linux错误处理函数
  • vue2技能树(5)-条件渲染和列表渲染
  • MySQL基本操作之创建数据库
  • 8.对象贴地
  • AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同
  • flutter doctor检测环境,出现CocoaPods installed but not working
  • Python 条件和 if 语句
  • 行业领先的三个企业正在利用聊天机器人变得更强
  • 「Git|场景案例」从项目中删除之前commit过的文件并且让git不追踪删除操作
  • 一款.NET Core开源的基于Vue+ElementUI开发的博客系统 - StarBlog
  • 用git stash暂存修改
  • 一个适合练手的接口测试实战项目——慕慕生鲜
  • window10/11 光学系统建模之Light Tools8.6 软件安装教程(亲测可用+附带免费资源可直接下载)
  • Vue3+ElementPlus el-date-picker时间选择器,设置最多选择60天区间内,必须选择大于今天
  • 2022年亚太杯APMCM数学建模大赛B题高速列车的优化设计求解全过程文档及程序