1. 程式人生 > >JAR檔案中讀取Excel模板檔案提供下載

JAR檔案中讀取Excel模板檔案提供下載

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>