之前写过一篇使用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