SpringBoot下载Excel文件无法打开

本文共 1,351 字,预计阅读时间 5 分钟

在项目中通常会用到excel模板下载,但是在下载后却无法打开,下载代码如下:

复制代码
@GetMapping("/test")
    public void test(HttpServletResponse response) throws IOException {
        String fileName = "学生信息导入模板.xlsx";
        InputStream in = this.getClass().getClassLoader().getResourceAsStream("template/" + fileName);
        response.setHeader("Access-Control-Expose-Headers", "content-disposition");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/octet-stream");
        response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
        int len = 0;
        byte bytes[] = new byte[1024];
        OutputStream out = response.getOutputStream();
        while ((len = in.read(bytes)) > 0) {
            out.write(bytes, 0, len);
        }
        in.close();
        out.close();
    }
复制代码

文件存放位置:

下载后打开,显示错误

在pom中添加以下代码即可解决。

复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <version>2.6</version>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
        <nonFilteredFileExtensions>   
             <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>
复制代码

主要原因是maven在打包项目的时候pom.xml配置文件里可以配置对项目进行统一编码,但是部分文件可能不需要进行重新编码,只需过滤掉不需要编码的文件类型即可。

posted @   钟小嘿  阅读(2079)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示