1、HttpServletResponse是返回响应数据
2、后端请求接口代码,ExportVo:存放的是查询数据的条件,默认按照查出的数据全部导出
@PostMapping("/export")
public void export(HttpServletResponse response,ExportVo exportVo) {
service.export(exportVo,response);
}
3、创建excel
@Override
public void assetExport(ExportAssetInfoVo exportAssetInfoVo, HttpServletResponse response) {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(i1);
cell.setCellValue(headList.get(i1));
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String path = dateFormat.format(date);
try {
OutputStream outputStream = response.getOutputStream();
response.setHeader("Content-Disposition", "attachment;filename=" + new String(path.getBytes(), "UTF-8") + ".xlsx");
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
wb.write(outputStream);
wb.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
}
}
4、前端获取到HttpServletResponse响应,浏览器自动解析,然后将生成的excel导出来