pom依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
HTML5 代码:
<input type="button" onclick="downTemplate()" value="下载模板" class="btn btn-primary"/>
JavaScript 代码:
<script type="text/javascript">
var fileName = "学生信息模板.xlsx";
function downTemplate() {
window.open("/admin/downTemplate?fileName="+fileName);
}
</script>
service层代码:
@Override
public void downTemplate(String fileName) throws IOException {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (requestAttributes != null) {
HttpServletResponse response = requestAttributes.getResponse();
String type = new MimetypesFileTypeMap().getContentType(fileName);
if (response != null) {
response.setHeader("Content-type", type);
String code = new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
response.setHeader("Content-Disposition", "attachment;filename=" + code);
FileUtil.download(fileName, response);
}
}
}
controller层代码:
@GetMapping("/downTemplate")
public String downTemplate(@RequestParam("fileName") String fileName){
try {
studentService.downTemplate(fileName);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
工具包:
public class FileUtil {
public static void download(String fileName, HttpServletResponse response) throws IOException {
OutputStream outputStream = response.getOutputStream();
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
bis = new BufferedInputStream(new FileInputStream(new File("./file/" + fileName)));
int i = bis.read(buff);
while (i != -1) {
outputStream.write(buff, 0, buff.length);
outputStream.flush();
i = bis.read(buff);
}
}
}
模板存储位置
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e4272efc426fc316f08080caf0f1fecc.png)