后端代码
引入对应依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
获取response对象,写入excel内容;
List<HotelReportDto> data = yunShanDeviceDao.getReportByParams(hotelReportPageParamsDto);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("ExcelName", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
response.setHeader("fileName", fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), HotelReportDto.class).sheet("sheetName").doWrite(data);
前端设置接收类型,直接接收
download(){
var params ={}
downloadReportByParams(params).then(res => {
let blob = new Blob([res],{type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const $link = document.createElement("a");
$link.href = URL.createObjectURL(blob);
$link.download = '数据模板.xlsx'
$link.click();
document.body.appendChild($link);
document.body.removeChild($link);
window.URL.revokeObjectURL($link.href);
})
},