springBoot整合easyexcel两种方式

一、依赖引入


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

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

 		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>

二、代码实现

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;

    /**
     * 2m温度
     */
    @ExcelProperty(index = 3)
    private Double tempera2;

    /**
     * 地表温度
     */
    @ExcelProperty(index = 4)
    private Double tempera;

    /**
     * <p>比湿</p>
     */
    @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<Object> 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<UserExcel> {

    private List<UserExcel> 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<UserExcel> getUsers() {
        return users;
    }

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


}

总结

欢迎沟通交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot是一个非常流行的开发框架,它为开发者提供了快速、简单的方式来构建Java应用程序。而EasyExcel是一个基于Java的强大的Excel读写框架,能够帮助开发者快速、高效地处理Excel文件。将SpringBootEasyExcel结合起来,可以实现动态表头导出的功能。 首先,我们需要在SpringBoot项目中引入EasyExcel的依赖,这可以通过在pom.xml文件中添加相应的依赖来实现。接着,我们需要编写相应的Java代码来实现动态表头导出的功能。首先,我们需要定义一个实体类,用来表示要导出的数据结构。然后,我们需要编写一个Controller来处理导出请求,并在其中调用EasyExcel的API来实现Excel文件的导出操作。 在实现动态表头导出的过程中,我们需要动态生成表头信息,这可以通过使用EasyExcel的注解来实现。我们可以根据导出数据的结构动态地生成表头信息,并将其与实际的数据一起写入Excel文件中。这样,就能够实现动态表头导出的功能了。 除了上述的步骤之外,我们还需要进行一些配置工作,例如配置Excel文件的格式、样式等。通过这些配置,我们可以实现导出的Excel文件符合我们的实际需求。 总的来说,SpringBoot整合EasyExcel进行动态表头导出,需要引入EasyExcel的依赖,编写相应的Java代码,处理导出请求,并进行相应的配置工作。通过这样的方式,我们就能够实现动态表头导出的功能,使得导出的Excel文件能够满足我们的实际需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值