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);
}
浙公网安备 33010602011771号