1、jar

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

2、数据类

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DownloadSkuData {

    @ColumnWidth(20)
    @ExcelProperty("序号")
    private Long index;
    @ColumnWidth(20)
    @ExcelProperty("商品编码")
    private Long skuId;
    @ColumnWidth(80)
    @ExcelProperty("信息")
    private String msg;

}

3、生成数据

 List<DownloadSkuData> exportDataLst = new ArrayList<>();

String fileName = "";
String originFileName = fileName.substring(0, fileName.lastIndexOf("."));
String suffix = fileName.substring(fileName.lastIndexOf("."));
//step3 写入到响应流中
try {
OutputStream out = response.getOutputStream();
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
originFileName = URLEncoder.encode(originFileName + "_checkResult", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + originFileName + suffix);
handleExcel(out, exportDataLst);
out.flush();
} catch (Exception e) {
log.error("下载异常,fileName={}", fileName,e);
throw new DecorateException(SvResultEnum.SYSTEM_ERROR);
}

4、controller

   @RequestMapping("/download")
    public void download(@RequestParam("key") String key, HttpServletResponse response) {
      
        batchImportService.download(response);
    }