java操纵excel:easyexcel

1.导入依赖

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

2.新建实体类

这个实体类的一个对象就对应excel中的一条数据

public class UserData{
   @ExcelProperty("用户名称")  //指明excel的字段名
   private String name;
   @ExcelProperty("用户年级")
   private String age;
   @ExcelProperty("用户学校")
   Private String school;
   @ExcelIgnore//忽略这个字段
    private String ignore;
   ......省略构造器,get,set方法
}

3.写

    public void test() {
        List<UserData> list = new ArrayList<UserData>();
        for (int i = 0; i < 10; i++) {
            UserData data = new UserData();
            data.setString("name" + i);
            data.setAge(20);
            data.setSchool("uestc");
            list.add(data);
        }
        String fileName="file1.xls";
        EasyExcel.write(fileName, UserData.class).sheet("模板").doWrite(list);
        EasyExcel.write(response.getOutputStream(), UserData.class).sheet("模板").doWrite(list); //这里也可以写入到一个流中比如response流
        
    }

4.读
读需要一个监听器

public class UserDataListener extends AnalysisEventListener<UserData> {
    //一行一行的读取表中的内容(除了表头),放到data中
    @Override
    public void invoke(UserData data, AnalysisContext context) {
        //我们可以把每行的数据放在一个list中
    }
    //读取之后执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
       //这里可以写入库之类的
    }
   
}
public void test() {
        
        String fileName="file1.xls";
        EasyExcel.read(fileName, UserData.class,new UserDataListener()).sheet().doRead();//传入路径或者文件的流
    }
posted @ 2021-04-29 21:16  刚刚好。  阅读(144)  评论(0)    收藏  举报