easyExcel的简单使用

    技术2022-07-10  157

    easyExcel的作用 , 通过java代码操作excel表格

    一.对Excel的写操作

    引入依赖 <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> </dependencies> 创建与excle对应的实体类 package com.example.test.excle; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class DemoData { @ExcelProperty("学生编号")//设置excle表头名称 private Integer sno; @ExcelProperty("学生姓名")//设置excle表头名称 private String sname; } 创建测试类 package com.example.test.excle; import com.alibaba.excel.EasyExcel; import java.util.ArrayList; import java.util.List; public class TestEasyExcel { public static void main(String[] args) { //实现excle写的操作 //1 设置写入文件夹的地址和excle文件名称 String filename = "F:\\write.xlsx"; //2 调用easyExcel里面的方法实现写操作 // write方法中两个参数 , 第一个是文件存储的路径名称 , 第二个是实体类.class EasyExcel.write(filename , DemoData.class).sheet("学生列表").doWrite(getData()); } //创建一个方法返回list集合 private static List<DemoData> getData(){ List<DemoData> list = new ArrayList<>(); for(int i = 0 ; i < 10 ; i++){ DemoData demoData = new DemoData(); demoData.setSname("marry" + i); demoData.setSno(i); list.add(demoData); } return list; } }

    二.对excel的读操作

    引入依赖 <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> </dependencies> 创建实体类 package com.example.test.excle; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class DemoData { @ExcelProperty(value = "学生编号" , index = 0)//设置excle表头名称 private Integer sno; @ExcelProperty(value = "学生姓名" , index = 1)//设置excle表头名称 private String sname; } 创建监听进行excel文件的读取 package com.example.test.excle; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import java.util.Map; public class ExcelListener extends AnalysisEventListener<DemoData> { //一行一行的读取excel的数据 , 不包括表头 , 也就是不读取第一行 @Override public void invoke(DemoData demoData, AnalysisContext analysisContext) { System.out.println("****" + demoData); } //读取表头的内容 @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("表头:" + headMap); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } } 方法调用 package com.example.test.excle; import com.alibaba.excel.EasyExcel; import java.util.ArrayList; import java.util.List; public class TestEasyExcel { public static void main(String[] args) { // 实现exce读操作 String filename = "F:\\write.xlsx"; EasyExcel.read(filename , DemoData.class , new ExcelListener()).sheet().doRead(); } }
    Processed: 0.016, SQL: 12