天天看點

下載下傳resource下的excel檔案

1、将excel檔案放項目resources目錄下
下載下傳resource下的excel檔案
2、打包的時候排除指定字尾檔案,否則打包時會出現檔案損壞的情況
<configuration>
   <encoding>UTF-8</encoding>
   <nonFilteredFileExtensions>
   <nonFilteredFileExtension>xls</nonFilteredFileExtension>
   <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
   </nonFilteredFileExtensions>
</configuration>
           
3、resource配置
<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                    <include>**/*.xlsx</include>
                </includes>
            </resource>
        </resources>
           
4、讀取resources下的xlsx檔案
try {
            //擷取模闆檔案
            File sourceFile = ResourceUtils.getFile("classpath:bankNameTemplate.xlsx");
            //轉換為檔案流
            BufferedInputStream fs = new BufferedInputStream(new FileInputStream(sourceFile));             
            //指定預設下載下傳名稱
            String fileName = "XXX.xlsx";
            //配置response的頭
            response.reset();
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            try {
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            //循環從檔案中讀出資料後寫出,完成下載下傳
            byte[] b = new byte[1024];
            int len;
            while ((len = fs.read(b)) != -1) {
                response.getOutputStream().write(b, 0, len);
            }
            fs.close();
        } catch (Exception e) {
            logger.error("下載下傳Excel模闆異常", e);
        }
           
5.前端請求
  window.location.href = "/exportExcelTemplate";