1.引入依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency>
还需要poi的依赖
2.写操作
1.创建一个实体类
package Excel; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class DemoData { //设置表头名称 @ExcelProperty("学生编号") private int sno; //设置表头名称 @ExcelProperty("学生姓名") private String sname; }
2.测试代码
public class TestEasyExcel { public static void main(String[] args) { String fileName = "D:\1.xlsx"; // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭 // 如果这里想使用03 则 传入excelType参数即可 EasyExcel.write(fileName, DemoData.class).sheet("写入方法一").doWrite(data()); // 写法2,方法二需要手动关闭流 // String fileName = "F:\112.xlsx"; // 这里 需要指定写用哪个class去写 // ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build(); // WriteSheet writeSheet = EasyExcel.writerSheet("写入方法二").build(); // excelWriter.write(data(), writeSheet); // /// 千万别忘记finish 会帮忙关闭流 // excelWriter.finish(); } private static List<DemoData> data() { List<DemoData> list = new ArrayList<DemoData>(); for (int i = 0; i < 10; i++) { DemoData data = new DemoData(); data.setSno(i); data.setSname("张三"+i); list.add(data); } return list; } }
3. 读操作
1.更改实体类
public class DemoData {
//设置表头名称
@ExcelProperty(value = "学生编号",index = 0)
private int sno;
//设置表头名称
@ExcelProperty(value="学生姓名",index = 1)
private String sname;
}
2. 建立监听器
public class ExcelListenner extends AnalysisEventListener<DemoData> { //一行一行去读取excle内容 @Override public void invoke(DemoData demoData, AnalysisContext analysisContext) { //创建list集合封装最终的数据 System.out.println("***"+demoData); } //读取excel表头信息 public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("表头信息:"+headMap); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }
3.main方法中
String fileName = "D:\\1.xlsx"; // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭 EasyExcel.read(fileName, DemoData.class, new ExcelListenner()).sheet().doRead();