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

SpringBoot 导出导入excel表 --easyexcel使用

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

SpringBoot 导出导入excel表 --easyexcel使用

easyexcel相对于apache poi和jxl,excelPOI内存消耗更少,操作更加简单。 预备工作

1.导入easyexcel

    
        com.alibaba
        easyexcel
        2.1.1
    

2.准备一个实体类

@Data  注意这里我用了lombok依赖减去手动setget的代码量,若未使用请手动setget;
public class UserData {
    @ExcelProperty("用户编号")
    private int id;
    @ExcelProperty("用户名称")
    private String username;
}
@ExcelProperty("是每一列的标题") 一.导出

一.准备一个导出地址

 String fileName="D:\excelTemp\1.xlsx";
//注意若没有建立excel文件,导出的时候会自动创建,excel支持xlsx跟xls;

二.模拟导出数据

   List userData = new ArrayList<>();
        //往list里塞数据
        for (int i=0;i<10;i++){
            UserData us = new UserData();
            us.setId(i);;
            us.setUsername("lucyt"+i);
            userData.add(us);
        }

 三.导出

 

  //sheet是excel工作表的名字如 sheet1 sheet2 所代表名称,这是只导入一个sheet的写法,
  //这里不需要关流,doWrite里已经写好了finish();
 EasyExcel.write(fileName,UserData.class).sheet("用户信息").doWrite(userData);
//一个excel多个sheet
        ExcelWriter build = EasyExcel.write(fileName, UserData.class).build();
        WriteSheet sheet1 = EasyExcel.writerSheet(0, "用户一").head(UserData.class).build();
        build.write(userData,sheet1);
        WriteSheet sheet2 = EasyExcel.writerSheet(1, "用户er").head(UserData.class).build();
        build.write(userData,sheet2);
        build.finish();//注意这里一定要关流,若不关流则不显示内容;

四.测试与完整代码(这里只展示多个sheet的)

 public static void main(String[] args) {
        String fileName="D:\excelTemp\1.xlsx";
        List userData = new ArrayList<>();
        //往list里塞数据
        for (int i=0;i<10;i++){
            UserData us = new UserData();
            us.setId(i);;
            us.setUsername("lucyt"+i);
            userData.add(us);
        }
        ExcelWriter build = EasyExcel.write(fileName, UserData.class).build();
        WriteSheet sheet1 = EasyExcel.writerSheet(0, "用户一").head(UserData.class).build();
        build.write(userData,sheet1);
        WriteSheet sheet2 = EasyExcel.writerSheet(1, "用户er").head(UserData.class).build();
        build.write(userData,sheet2);
        build.finish();
//        EasyExcel.write(fileName,UserData.class).sheet("用户信息").doWrite(userData);

    }

二.导入

1.准备工作

//这里新建一个监听器,继承AnalysisEventListener这里泛型写读的实体类
//重写invoke方法 打印(userData);
public class ExcelListener extends AnalysisEventListener {
    @Override
    public void invoke(UserData userData, AnalysisContext analysisContext) {
          System.out.println(userData);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

这里我把sheet1的页的数据改下

 2.测试

EasyExcel.read('文件名',读的实体类的class,前面写好的实体类)

   public static void main(String[] args) {
        String fileName="D:\excelTemp\1.xlsx";
        EasyExcel.read(fileName,UserData.class,new ExcelListener()).sheet(0).doRead();
        EasyExcel.read(fileName,UserData.class,new ExcelListener()).sheet(1).doRead();
    }

 

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

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

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