JAR檔案中讀取Excel模板檔案提供下載
阿新 • • 發佈:2019-02-09
1、前言
在一個Java web專案中,需要提供Excel模板檔案的下載。通常會把Excel檔案隨工程打包,之前的專案會打一個war包,Excel檔案可以通過File的方法去讀取,後來專案改用Spring Boot,工程打包為jar包,就無法用File的方法去讀取jar包中的檔案,就只能用流的方法去獲取檔案。
2、解決方案
首先把檔案放在classpath下,便於讀取,在工程中我們將file資料夾放在resources下,打包時檔案就會放在classpath下。如下圖。
這樣就可以使用Spring的ClassPathResource類去讀取file資料夾裡的內容。如以下程式碼所示,就獲取到file下test.xlsx的檔案內容,以流的方式讀取檔案,之後可以提供下載等功能。
Resource res = new ClassPathResource("file/test.xlsx");
InputStream is = res.getInputStream();
注意,如果專案用maven打包,可能會過濾Excel檔案,這樣會損壞Excel檔案,要在pom檔案中配置maven的免過濾,如下程式碼所示,對xlsx、xls、zip、txt檔案做了免過濾配置。
<resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xlsx</include> <include>**/*.xls</include> <include>**/*.zip</include> <include>**/*.txt</include> </includes> <filtering>false</filtering> </resource> </resources>