1,
@GetMapping("/template")
public void template(HttpServletResponse response)
{
try {
response.reset();
// 设置文件头
response.setHeader("content-disposition", "attachment;fileName=" + URLEncoder.encode("模板.xlsx", "UTF-8"));
ClassPathResource resource = new ClassPathResource("template/excelTemplate.xlsx");
InputStream stream = resource.getStream();
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(Utils.readByteArray(stream));
outputStream.close();
stream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
2,
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.xlsx</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xlsx</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
其中第一段配置声明:在src/main/resources目录下,后缀是.xlsx的文件不是资源文件,其它的资源文件需要被过滤。而第二段配置声明:同样在src/main/resources目录下,后缀是.xlsx的文件是资源文件,但是不会被过滤。
配置完成后,如果重新编辑(打包)没有效果,需要maven claen 或者删除target文件重新编译一遍就可以啦。