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

践行新使命忠诚保大庆网站建设资讯网站的优势

践行新使命忠诚保大庆网站建设,资讯网站的优势,快闪视频制作软件app,seo云优化软件破解版文章目录 EasyExcel使用详解一、引言二、环境准备与基础配置1、添加依赖2、定义实体类 三、Excel 读取详解1、基础读取2、自定义监听器3、多 Sheet 处理 四、Excel 写入详解1、基础写入2、动态列与复杂表头3、样式与模板填充 五、总结 EasyExcel使用详解 一、引言 EasyExcel 是…

文章目录

  • EasyExcel使用详解
    • 一、引言
    • 二、环境准备与基础配置
      • 1、添加依赖
      • 2、定义实体类
    • 三、Excel 读取详解
      • 1、基础读取
      • 2、自定义监听器
      • 3、多 Sheet 处理
    • 四、Excel 写入详解
      • 1、基础写入
      • 2、动态列与复杂表头
      • 3、样式与模板填充
    • 五、总结

EasyExcel使用详解

在这里插入图片描述

一、引言

EasyExcel 是阿里巴巴开源的一款基于 Java 的 Excel 处理工具,专注于高性能和低内存占用,尤其适合处理百万级数据的大文件。相比传统的 Apache POI,EasyExcel 通过流式读写和智能内存管理,显著降低了内存溢出风险,同时提供了简洁的 API 和灵活的注解配置。本文将从基础配置到实际应用场景,详解 EasyExcel 的核心功能。


二、环境准备与基础配置

1、添加依赖

pom.xml 中引入 EasyExcel 依赖(以最新稳定版为例):

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.0</version>
</dependency>

2、定义实体类

通过注解 @ExcelProperty 映射 Excel 列名或索引,@ExcelIgnore 忽略字段:

@Data
public class User {@ExcelProperty("用户ID")private Long id;@ExcelProperty(value = "姓名", index = 1)  // 指定列索引private String name;@ExcelProperty("创建时间")private Date createTime;@ExcelIgnore  // 不参与读写private String remark;
}

三、Excel 读取详解

1、基础读取

使用 PageReadListener 实现分批处理(默认每 100 条处理一次):

String fileName = "user_data.xlsx";
EasyExcel.read(fileName, User.class, new PageReadListener<User>(dataList -> {dataList.forEach(user -> System.out.println("读取数据:" + user.getName()));
})).sheet().doRead();

2、自定义监听器

实现 ReadListener 接口,手动控制数据批次:

@Slf4j
public class UserListener implements ReadListener<User> {private static final int BATCH_SIZE = 200;private List<User> cachedList = new ArrayList<>(BATCH_SIZE);@Overridepublic void invoke(User user, AnalysisContext context) {cachedList.add(user);if (cachedList.size() >= BATCH_SIZE) {saveToDatabase(cachedList);  // 模拟入库操作cachedList.clear();}}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {if (!cachedList.isEmpty()) saveToDatabase(cachedList);log.info("所有数据解析完成!");}private void saveToDatabase(List<User> list) {// 实际业务中调用 DAO 层}
}

调用方式:

EasyExcel.read(fileName, User.class, new UserListener()).sheet().doRead();

3、多 Sheet 处理

支持读取多个 Sheet,每个 Sheet 可绑定不同监听器:

try (ExcelReader excelReader = EasyExcel.read(fileName).build()) {ReadSheet sheet1 = EasyExcel.readSheet(0).head(User.class).registerReadListener(new UserListener()).build();ReadSheet sheet2 = EasyExcel.readSheet(1).head(Order.class).registerReadListener(new OrderListener()).build();excelReader.read(sheet1, sheet2);
}

四、Excel 写入详解

1、基础写入

直接写入数据列表,自动生成表头:

List<User> userList = queryUsersFromDB();  // 从数据库查询数据
EasyExcel.write("export_users.xlsx", User.class).sheet("用户列表").doWrite(userList);

2、动态列与复杂表头

通过 @ExcelProperty 定义多级表头和列顺序:

@Data
public class SaleData {@ExcelProperty({"销售信息", "订单号"})private String orderId;@ExcelProperty({"销售信息", "金额"})private BigDecimal amount;@ExcelProperty(value = "时间", index = 2)  // 指定列顺序private Date createTime;
}

3、样式与模板填充

支持基于模板的填充(如财务报表):

// 填充模板中的占位符(如 {name})
Map<String, Object> data = new HashMap<>();
data.put("name", "张三");
data.put("amount", 10000);EasyExcel.write("report.xlsx").withTemplate("template.xlsx").sheet().doFill(data);

五、总结

EasyExcel 凭借其高性能低内存占用,成为处理大文件 Excel 的首选工具。通过灵活的注解配置和事件监听机制,开发者可以轻松实现复杂的数据映射和分批处理逻辑。无论是数据导入导出,还是模板化报表生成,EasyExcel 均能高效完成。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。
参考文章

  • EasyExcel官方文档
  • CSDN:EasyExcel详解(结合官方文档)
http://www.yayakq.cn/news/176485/

相关文章:

  • 电脑建站软件网站建设过时了吗
  • 做企业网站好处过年做那些网站致富
  • 深圳微信网站定制网站数据库搬家
  • 南充网站建设与维护互联网技术的概念
  • 曹妃甸建设局网站现在房子装修流行什么风格
  • 做网站架构网页设计公司兴田德润在那里
  • 与众不同的网站展览网站建设方案
  • 怎么找到网站后台支付网站建设推广的会计分录
  • 怎样做公司自己的官方网站互联网上市公司排名
  • 给企业做网站如何定价建筑设计作品集
  • 农畜产品销售平台的网站建设2022网页游戏排行榜前十名
  • 湖南省政务服务网 网站建设要求网站推广软件哪个好
  • 网站开发成本评估新产品开发8个步骤
  • 美食分享网站设计购买备案域名
  • 北京制作网站主页中沪红蚂蚁装潢公司
  • 做网站会提供源代码吗建筑设计公司网站模板
  • 上传网站过程烟台seo网络推广
  • 做牙网站租房网站开发视频教程
  • 网站名字备案wdcp创建wordpress
  • 正规品牌网站设计外贸公司网站推广
  • 湖南网站建设磐石网络口碑好自己做网站网站
  • 做网站后台服务器什么最好wordpress 文档 插件
  • 建站系统宜宾市住房和城乡建设局网站
  • 乐平网站设计wordpress国外图片主题
  • 打开陕西建设厅网站电子商务网站建设描述
  • easyui网站开发实战 pdf深圳专业设计网站公司
  • 筹建网站信息技术wordpress怎么用外链
  • 做公司网站的多少钱上海市工程质量建设管理协会网站
  • 网站设计制作有哪些原因做公众号app,网站,app
  • 什么网站用php做的汶上网站制作