后端:
@GetMapping("getmoban")
@ApiOperation(value ="查询")
public void getmoban(HttpServletResponse response) {
InputStream resourceAsStream = this.getClass().getResourceAsStream("/templates/场桥作业量统计报表导入模板.xlsx");
response.setHeader("content-Type", "application/vnd.ms-excel");
try {
response.setHeader("filename", URLEncoder.encode("场桥作业量统计报表导入模板.xlsx", "UTF-8") );
ServletOutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = resourceAsStream.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
前端:
/**
* 三页面通用的导入模板
* @param params
*/
getmoban() {
const url = `/api/energy/bizcqjobltj/getmoban`;
this.http.request('GET', url, { responseType: 'blob', observe: 'response' }).subscribe(res => {
const blob = new Blob([res.body!], { type: 'application/octet-stream' });
saveAs(blob, decodeURI(decodeURIComponent(<string>res.headers.get('filename'))));
});
}