栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springBoot整合easyexcel两种方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springBoot整合easyexcel两种方式

一、依赖引入

    com.alibaba
    >easyexcel
    2.2.7
 

在这需要引入easyexcel的jar(必须),在实际项目还会引入

 		
            org.projectlombok
            >lombok
        

        
            com.alibaba
            >fastjson
            1.2.73
        
二、代码实现 1.建表单对象

比较推荐这一种写法,可以直接将表单的每一条直接转成对象。
注意:这里推荐的写法是读取时采用@ExcelProperty(index = 1),给index值的这种写法
在导出excel文件的时候,需要写value值,这样excel就不需要自己处理表头

@Data
public class ExcelMode extends baseRowModel {

    @ExcelProperty(index = 0,value = "模型运行日期")
    private String date;

    @ExcelProperty(index = 1)
    private String time;

    @ExcelProperty(index = 2)
    private String place;

    
    @ExcelProperty(index = 3)
    private Double tempera2;

    
    @ExcelProperty(index = 4)
    private Double tempera;

    
    @ExcelProperty(index = 5)
    private Double bishi;

    ..........
}

@Data
public class UserExcel{
    @ExcelProperty(index = 0,value = "姓名")
    private String name;
}
2.读入数据

老版本的写法,目前已经被废弃了不推荐使用

业务代码

public static void main(String[] args) throws FileNotFoundException {
        String readPath = "a.xlsx";
        // sheetNo:从0开始 headLineMun:除去表头(表头为0)
        Sheet sheet = new Sheet(0, 1, ExcelMode.class);
        // 这里的read就是excel解析后的对象数组
        List read = EasyExcelFactory.read(new FileInputStream(readPath), sheet);
        System.out.println();
        }
 

下面是新版本的写法,这种写法推荐自己写一个监听器继承(AnalysisEventListener),可以实现自定义

业务代码

 public static void main(String[] args) throws FileNotFoundException {
        String file = "t.xlsx";
        String reFile = "re.xlsx";
        UserExcelListener listener = new UserExcelListener();
        // 读取
        EasyExcel.read(new File(file), UserExcel.class, listener).sheet(0).doRead();
        // 写入
        EasyExcel.write(reFile, UserExcel.class).sheet(0,"用户表").doWrite(listener.getUsers());
        System.out.println();
    }

监听

@Slf4j
public class UserExcelListener extends AnalysisEventListener {

    private List users = new ArrayList<>();

    @Override
    public void invoke(UserExcel userExcel, AnalysisContext analysisContext) {
        log.info("解析数据:{}", JSON.toJSONString(userExcel));
        users.add(userExcel);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
//        users.clear();
    }

    public List getUsers() {
        return users;
    }

    public void setUsers(List users) {
        this.users = users;
    }


}
总结

欢迎沟通交流

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号