EasyExcel使用ResponseEntity导出excel

本文介绍如何使用EasyExcel配合ResponseEntity直接将excel文件返回给前端,避免先保存到服务器再下载的步骤。详细讲解了controller、service、实体类、工具类以及自定义样式策略的实现,并提醒在设置HTTP状态码时避免偶发问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写过一篇使用EasyExcel导出excel到项目服务器中,然后在下载页面点击下载之后根据路径进行下载的。在这篇文章中我将用ResponseEntity直接返回excel到前端,记录一下该方法,同时也给大家一个参考。
1、controller层代码(根据前端的需求来)

	@GetMapping("/export_excel")
    public ResponseEntity exportExcel(@RequestBody List<PrdRequest> prdRequest) {
   
        return prdService.exportExcel(prdRequest);
    }

2、service层实现代码

public ResponseEntity exportExcel(List<PrdRequest> prdRequest) {
   
        try {
   
        	//根据条件进行查询
        	List<PrdVo> prdVoList = prdMapper.selectPrd(prdRequest);
            //数据写入到字节流
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            String sheetName = "产品信息查询导出表";
            boolean flag = ExcelUtils.writeExcel(bos, PrdVo.class, prdVoList , sheetName);
            //下载文件
            String fileName = sheetName + ".xlsx";
            //excel导出
            if (flag) {
   
                return ExcelUtils.downloadExcel(fileName, bos);
            }
        } catch (Exception e) {
   
            log.error("产品信息导出异常", e);
        }
        return null;
    }

3、导出结果实体类

@ApiModel(value = "PrdVo", description = "产品信息excel导出实体")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值