EasyExcel的读写操作

EasyExcel的写操作

1、引入依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.1</version>
    </dependency>
    	<!--EasyExcel需要用到poi的依赖,2.1.1对应3.17,否则容易出错-->
	<!--xls-->
	<dependency>
	   <groupId>org.apache.poi</groupId>
	   <artifactId>poi</artifactId>
	   <version>3.17</version>
	</dependency>
	<!--xlsx-->
	<dependency>
	   <groupId>org.apache.poi</groupId>
	   <artifactId>poi-ooxml</artifactId>
	   <version>3.17</version>
	</dependency>
	
</dependencies>

2、创建实体类

@Data//此处为lombok的注解,可自动生成getset方法,没有lombok插件的可以看以下以往的文章,或者手动getset
public class demoData {
    //Excel表头   为excel表中的第一行数据
    @ExcelProperty("学生编号")
    private  Integer sno;
    @ExcelProperty("学生姓名")
    private String sname;
}

3、具体代码实现

public class Testeasyexcel {
    public static void main(String[] args) {
        //easyexcel写操作
        //设置写入文件夹地址和文件名称
        String filename= "D:\\write.xlsx";

        List<demoData> list = new ArrayList<>();
        for(int i=0;i<100;i++){
            demoData d = new demoData();
            d.setSname("Mike"+i);
            d.setSno(i);
            list.add(d);
        }

        //调用方法  参数1:文件输出  2:实体类
        EasyExcel.write(filename,demoData.class).sheet("学生列表").doWrite(list);
        //sheet为excel的左下角的多个页面,此处为学生列表的页面
    }
}

读操作

1、建实体类

@Data
public class demoData {
    //Excel表头
    @ExcelProperty(value = "学生编号",index = 0)//次数要多加个索引号,表示表头的第几列
    private  Integer sno;
    @ExcelProperty(value = "学生姓名",index = 1)
    private String sname;
}

2、写监听器

//监听器  要继承AnalysisEventListener<demoData>  demoData此处为实体类
public class excelListener extends AnalysisEventListener<demoData> {
    //一行一行读出excel内容  不读表头  EasyExcel之所以效率高,也是因它一行一行读取,解析。
    @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) {

    }
}

3、具体代码实现

public class ReadTestEasyExcel {
    public static void main(String[] args) {
        String filename= "D:\\write.xlsx";
        EasyExcel.read(filename,demoData.class,new excelListener()).sheet().doRead();
    }
}

控制台效果
在这里插入图片描述
希望该文章对你们有帮助哈,有帮到你们的麻烦点个赞哈,有兴趣的朋友可以关注一下公众号,公众号上会发布一些最近行业常用的技术,还有一些自己见解的文章。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fighting32/article/details/107131044