使用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插件
基本步骤就是这样的,祝你们成功!

1. 引入easyExcel依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.9</version> </dependency> ``` 2. 编写导出excel的实体类 例如,我们要导出一个学生信息表格,那么我们可以定义一个Student类来表示学生信息,如下所示: ``` public class Student { private String name; // 姓名 private int age; // 年龄 private String gender; // 性别 private String major; // 专业 // 省略getter和setter方法 } ``` 3. 编写导出excel的服务类 我们可以定义一个ExcelService类来实现导出excel文件的功能,例如: ``` @Service public class ExcelService { public void export(List<Student> studentList, HttpServletResponse response) throws IOException { OutputStream out = response.getOutputStream(); try { response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("学生信息表.xlsx", "UTF-8")); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); ExcelWriter writer = EasyExcelFactory.getWriter(out); Sheet sheet = new Sheet(1, 0, Student.class); sheet.setSheetName("学生信息表"); writer.write(studentList, sheet); writer.finish(); } finally { out.close(); } } } ``` 在这个服务类中,我们定义了一个export方法来实现导出excel文件的功能。它接受一个学生信息列表和一个HttpServletResponse对象作为参数,其中HttpServletResponse对象用于设置响应头和输出流。 在方法中,我们首先获取输出流,然后设置响应头和响应类型。接着,我们使用EasyExcelFactory的getWriter方法获取一个ExcelWriter对象,并创建一个Sheet对象来表示Excel中的一个表格。我们将学生信息列表和Sheet对象传给ExcelWriter的write方法来写入数据,最后调用ExcelWriter的finish方法来完成导出操作。 4. 调用导出excel的服务方法 我们可以在Controller中调用ExcelService的export方法来实现导出excel文件的功能,例如: ``` @RestController public class ExcelController { @Autowired private ExcelService excelService; @GetMapping("/export") public void export(HttpServletResponse response) throws IOException { List<Student> studentList = new ArrayList<>(); studentList.add(new Student("张三", 18, "男", "计算机科学与技术")); studentList.add(new Student("李四", 19, "女", "软件工程")); studentList.add(new Student("王五", 20, "男", "信息安全")); excelService.export(studentList, response); } } ``` 在这个Controller中,我们定义了一个export方法来处理导出excel文件的请求。它调用了ExcelService的export方法来实现导出操作,并将学生信息列表和HttpServletResponse对象作为参数传递给ExcelService的export方法。 5. 测试导出excel文件的功能 我们可以启动应用程序,并在浏览器中访问http://localhost:8080/export来测试导出excel文件的功能。当我们点击链接时,浏览器会下载一个名为“学生信息表.xlsx”的excel文件,其中包含了我们之前定义的学生信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值