不同格式的文件响应不同的链接类型.
XLSX文件格式的下载
response.setContentType("application/vnd.openxmlformats officedocument.spreadsheetml.sheet");
public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
if (!file.exists()) {
return "文件不存在!";
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
excelName = URLEncoder.encode(excelName, "UTF-8");
excelName = new String(new String(excelName + ExcelTypeEnum.XLSX.getValue()).getBytes(), "ISO8859-1");
response.setHeader("Content-disposition", "attachment;filename=" + excelName);
response.setHeader("Access-Control-Expose-Headers","Content-disposition");
try (
FileInputStream in = new FileInputStream(file);
ServletOutputStream out = response.getOutputStream();
) {
IOUtils.copy(in, out);
return "导出成功!";
} catch (Exception e) {
log.error("导出文件异常:", e);
}
return "导出失败!";
}
XLS文件格式的下载
response.setContentType("application/vnd.ms-excel");
public static String export2Web4FileList(HttpServletResponse response, String path, String excelName,List data) throws UnsupportedEncodingException {
File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
if (!file.exists()) {
return "文件不存在!";
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
excelName = URLEncoder.encode(excelName, "UTF-8");
excelName = new String(new String(excelName + ExcelTypeEnum.XLSX.getValue()).getBytes(), "ISO8859-1");
response.setHeader("Content-disposition", "attachment;filename=" + excelName);
response.setHeader("Access-Control-Expose-Headers","Content-disposition");
try {
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(file.getPath()).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
if (CollectionUtils.isNotEmpty(data)) {
excelWriter.fill(data, writeSheet);
}
excelWriter.finish();
return "导出成功!";
} catch (Exception e) {
log.error("导出文件异常:", e);
}
return "导出失败!";
}