使用easyexcel完成导出功能

  1. 先在pom文件里面导入jar包
		<!--版本号根据你项目而定-->
		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
        </dependency>
2.可以开始写代码逻辑了
	@GetMapping("/testExport")
    public void listHospitalIllness(HttpServletResponse response) {
        try {
        	//  设置内容格式 以及 编码方式
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf-8");
            //   调用service去获取数据
            List<UserPo>  resultList= exportService.selectAll();
            //  使用java8新特性的stream流去处理数据,把空的数据过滤掉
            List<UserBo> resultBo = resultList.stream().filter(Objects::nonNull)
                    .map(t -> {
                        return UserBo.builder()
                                .name(t.getName())
                                .sex(t.getSex())
                                .age(t.getAge())

                                .build();
                    }).collect(Collectors.toList());
            //  设置文件名称
            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
            String fileName = URLEncoder.encode("测试导出", "UTF-8");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
            //  sheet名称
            EasyExcel.write(response.getOutputStream(), UserBo.class).sheet("测试导出").doWrite(resultBo);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

3、userPo是返回的实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserPo {

    private String Id;

    private String name;

    private String sex;

    private String age;
}

4、userBo是导出excel需要用的实体

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
//内容高度
@ContentRowHeight(25)
//表头行高度
@HeadRowHeight(25)
//列的宽度
@ColumnWidth(25)
public class UserBo {

	//表头名称
    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("性别")
    private String sex;

    @ExcelProperty("年龄")
    private String age;
}

5、直接上输出结果

在这里插入图片描述
这都是在上面可以设置的,具体可以查看第二步骤 controller里面的注释
easyexcel的默认样式是表头加粗,至于@Data和其他实体类上的注解 不起作用的话,记得下载lombok插件
基本步骤就是这样的,祝你们成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值