代码示例:
@GetMapping("/download")
public void download(HttpServletResponse response) {try {String filename = "测试.xls";OutputStream outputStream = response.getOutputStream();// 获取springboot resource 路径下的文件InputStream inputStream = this.getClass().getResourceAsStream("/excel/text.xls");response.setContentType("application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment;fileName=" + new String(filename.getBytes("utf-8"), "iso-8859-1"));IOUtils.copy(inputStream, outputStream);inputStream.close();outputStream.flush();} catch (Exception e) {throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, e.toString());}
}
提示:如果 inputStream 为null ,或者提示 文件路径不存在,执行 mvn clean 并 重启项目,查看target 目录下是否存在该文件
pom文件中添加一下配置,防止excel文件中文乱码
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><configuration><encoding>UTF-8</encoding><nonFilteredFileExtensions><nonFilteredFileExtension>xls</nonFilteredFileExtension><nonFilteredFileExtension>xlsx</nonFilteredFileExtension><nonFilteredFileExtension>dat</nonFilteredFileExtension></nonFilteredFileExtensions></configuration>
</plugin>