企业网站管理系统设置,网站建设网站结构图,虚拟主机网站被挂马,美食欣赏网站Easy Excel官网#xff1a;
EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel (alibaba.com)
https://easyexcel.opensource.alibaba.com/
Easy Excel的特点和优势#xff1a; 简单易用#xff1a;Easy Excel提供了简洁的API#xff0c;使用起来非常方便。开发…Easy Excel官网
EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel (alibaba.com)
https://easyexcel.opensource.alibaba.com/
Easy Excel的特点和优势 简单易用Easy Excel提供了简洁的API使用起来非常方便。开发人员可以通过几行代码就能实现Excel文件的读写操作。 高性能Easy Excel采用了基于流的方式进行读写操作能够处理大规模的Excel文件并且具有较高的读写性能。 多格式支持Easy Excel支持多种常见的Excel文件格式包括xls、xlsx等。开发人员可以根据自己的需求选择适合的格式进行读写操作。 数据转换Easy Excel提供了灵活的数据转换功能可以将Excel文件中的数据转换成Java对象或者将Java对象转换成Excel文件中的数据。 样式设置Easy Excel支持设置Excel文件中单元格的样式包括字体、颜色、边框等可以使生成的Excel文件更加美观。 导入导出功能Easy Excel提供了便捷的导入导出功能可以快速地将Java对象导出为Excel文件或者将Excel文件中的数据导入到Java对象中进行处理。
前期准备
Excel表格位置为d:\\read.xlsx: 导入依赖
dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.0.5/version
/dependency
DemoData对象类
package com.muyuan.review.pojo;import com.alibaba.excel.annotation.ExcelProperty;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;import java.util.Date;Getter
Setter
EqualsAndHashCode
public class DemoData {//注意名字与表格列名匹配//否则会报错 can not find data format for://字段顺序与表格列顺序一致//注解优先级大于索引ExcelProperty(数字)private Double doubleData;ExcelProperty(用户名)private String string;ExcelProperty(日期)private Date date;
}
简单用法一
ReadDemo:
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.fastjson.JSON;
import com.muyuan.review.pojo.DemoData;
import lombok.extern.slf4j.Slf4j;Slf4j
public class ReadDemo {public static void main(String[] args) {// 写法1JDK8 ,不用额外写一个DemoDataListener// since: 3.0.0-beta1//原 String fileName TestFileUtil.getPath() demo File.separator demo.xlsx;//改 获取文件路径String fileName d:\\read.xlsx;// 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行// 具体需要返回多少行可以在PageReadListener的构造函数设置EasyExcel.read(//文件路径fileName,//字体类的字节码DemoData对象DemoData.class,//读取到一条数据的监听器new PageReadListenerDemoData(dataList - {for (DemoData demoData : dataList) {log.info(读取到一条数据{},//格式化转化读到的数据转化为JSON字符串JSON.toJSONString(demoData));}})).sheet().doRead();}
}
结果 简单用法二使用监听器
注意很重要的点 DemoDataListener 不能被spring管理要每次读取excel都要new,然后里面用到spring可以构造方法传进去 监听器ReadDemoListener:
package com.muyuan.review.listener;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.muyuan.review.pojo.DemoData;
import lombok.extern.slf4j.Slf4j;import javax.servlet.ReadListener;
import javax.swing.event.AncestorListener;
import java.io.IOException;/*** Classname ReadDemoListener* Description* Date 2023/12/3 12:17* Created by 玉满堂*/
// 有个很重要的点 DemoDataListener 不能被spring管理
// 要每次读取excel都要new,然后里面用到spring可以构造方法传进去
//DemoData读取到每一个对象的泛型
Slf4j
public class ReadDemoListener extends AnalysisEventListenerDemoData {Overridepublic void invoke(DemoData data, AnalysisContext context) {//没读取到一条数据执行一次System.out.println(JSON.toJSONString(data));}Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 读取完所有执行log.info(所有数据解析完成);}}ReadDemo:
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.fastjson.JSON;
import com.muyuan.review.listener.ReadDemoListener;
import com.muyuan.review.pojo.DemoData;
import lombok.extern.slf4j.Slf4j;Slf4j
public class ReadDemo {public static void main(String[] args) {// 写法1JDK8 ,不用额外写一个DemoDataListener// since: 3.0.0-beta1//原 String fileName TestFileUtil.getPath() demo File.separator demo.xlsx;//改 获取文件路径String fileName d:\\read.xlsx;EasyExcel.read(//文件路径fileName,//文件字节码对象DemoData.class,//监听器在解析过程中接收和处理数据new ReadDemoListener())//指定要读取的Sheet页默认为第一个Sheet页.sheet()//执行实际的读取和解析操作.doRead();}
}
结果