1.插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
2.代码
@Override
public void exportTemplate(HttpServletResponse response) {
Resource resource = resourceLoader.getResource(CommonConst.DAILY_SHEET_TEMPLATE);
try {
InputStream inputStream = resource.getInputStream();
ExcelPoiUtil.downExcel2( inputStream,"日报导入模板.xls",response);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 生成 excel 到前端浏览器
* @param in FileInputStream流
* @param fileName 导出的文件名字 1832a49d4de.xlsx
**/
public static void downExcel2(InputStream in,String fileName, HttpServletResponse response) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ServletOutputStream ouputStream = null;
try {
int len = 0;
byte[] b = new byte[1024];
while ((len = in.read(b, 0, b.length)) != -1) {
os.write(b, 0, len);
}
byte[] bytes = os.toByteArray();
response.reset(); // 清空输出流
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + URLEncoder.encode(fileName, "UTF-8"));
response.addHeader("Cache-Control", "no-cache");
response.setContentLength(bytes.length);
ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
CloseableUtils.close(ouputStream, os);
}
}