Java 下載 Excel模板

衣舞晨風發表於2017-07-17
 /**
     * 下載匯入應用模板
     *
     * @return
     */
    @ResponseBody
    @RequestMapping(method = RequestMethod.GET)
    public Response getApplicationTemplate(HttpServletRequest req, HttpServletResponse res) {
        try {
            //獲取要下載的模板名稱
            String fileName = "ApplicationImportTemplate.xlsx";
            //設定要下載的檔案的名稱
            res.setHeader("Content-disposition", "attachment;fileName=" + fileName);
            //通知客服檔案的MIME型別
            res.setContentType("application/vnd.ms-excel;charset=UTF-8");
            //獲取檔案的路徑
            String filePath = getClass().getResource("/template/" + fileName).getPath();
            FileInputStream input = new FileInputStream(filePath);
            OutputStream out = res.getOutputStream();
            byte[] b = new byte[2048];
            int len;
            while ((len = input.read(b)) != -1) {
                out.write(b, 0, len);
            }
            //修正 Excel在“xxx.xlsx”中發現不可讀取的內容。是否恢復此工作薄的內容?如果信任此工作簿的來源,請點選"是"
            res.setHeader("Content-Length", String.valueOf(input.getChannel().size()));
            input.close();
            return Response.ok("應用匯入模板下載完成");
        } catch (Exception ex) {
            log.error("getApplicationTemplate :", ex);
            return Response.ok("應用匯入模板下載失敗!");
        }
    }

需要下載檔案位置:
這裡寫圖片描述

如果在HttpServletResponse Header中不指定Content-Length,那麼在下載完成開啟後,會有如下提示:
這裡寫圖片描述

個人微信公眾號:
這裡寫圖片描述

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章