欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot?前后端分離項目使用?POI?生成并導出?Excel的操作方法

 更新時間:2023年09月28日 16:20:23   作者:I'm?Jie  
在做一個?SpringBoot?前后端分離項目的時候,需要將數(shù)據(jù)存到?Excel中,用戶可以下載?Excel,具體實現(xiàn)是采用?Apache?強大的?POI,本文給大家介紹Springboot?前后端分離項目使用?POI?生成并導出?Excel相關知識,感興趣的朋友一起看看吧

在做一個 SpringBoot 前后端分離項目的時候,需要將數(shù)據(jù)存到 Excel中,用戶可以下載 Excel。具體實現(xiàn)是采用 Apache 強大的 POI。文章最后將源碼例出。

8df0d35a91984785ab319909266df5b9

POI API 文檔: https://poi.apache.org/apidocs/dev/index.html

步驟

1.導入 POI 的 maven 依賴

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.1.0</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.1.0</version>
</dependency>

2.使用 produces 設置響應類型和編碼為 “application/octet-stream”。

@RequestMapping(value = "/down", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)

3.通過使用 SXSSFWorkbook 設置 Excel 表

SXSSFWorkbook workbook = new SXSSFWorkbook();
//設置表格名稱
SXSSFSheet sheet = workbook.createSheet("銷售榜單");
//設置表格默認寬度30
sheet.setDefaultColumnWidth(30);
//設置 sheet 表格的第0行
SXSSFRow row = sheet.createRow(0);
//設置 sheet 表格的第0行第0列的值
row.createCell(0).setCellValue("商品名稱");
//設置 sheet 表格的第0行第1列的值
row.createCell(1).setCellValue("數(shù)量");

4.設置響應頭

//設置響應頭
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
//filename 為 Excel 文件名稱

5.獲取 response 的輸出流,通過輸出流將 Excel 輸出。

//將 Excel 表輸出到輸出流
OutputStream out = response.getOutputStream();
workbook.write(out);

樣例代碼

//1、通過 SXSSFWorkbook 設置 Excel 表
//2、設置響應頭
//3、輸出流輸出
@RequestMapping(value = "/down", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public void downXlsx(HttpServletResponse response) {
    //設置表名
    String fileName = "銷售榜單.xlsx";
    SXSSFWorkbook workbook = new SXSSFWorkbook();
    //設置表格名稱
    SXSSFSheet sheet = workbook.createSheet("銷售榜單");
    //設置表格默認寬度30
    sheet.setDefaultColumnWidth(30);
    //設置 sheet 表格的第0行
    SXSSFRow row = sheet.createRow(0);
    //設置 sheet 表格的第0行第0列的值
    row.createCell(0).setCellValue("商品名稱");
    //設置 sheet 表格的第0行第1列的值
    row.createCell(1).setCellValue("數(shù)量");
    OutputStream out = null;
    try {
        //設置響應頭
        response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
        response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
        //將 Excel 表輸出到輸出流
        out = response.getOutputStream();
        workbook.write(out);
        out.flush();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        workbook.dispose();
        try {
            if (out != null)
                out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

到此這篇關于Springboot 前后端分離項目使用 POI 生成并導出 Excel的文章就介紹到這了,更多相關Springboot 前后端分離項目內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Django rest framework使用類視圖實現(xiàn)首頁API

    Django rest framework使用類視圖實現(xiàn)首頁API

    這篇文章主要介紹了Django rest framework使用類視圖實現(xiàn)首頁API,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 面試題:java中為什么foreach中不允許對元素進行add和remove

    面試題:java中為什么foreach中不允許對元素進行add和remove

    讀者遇到了一個比較經典的面試題,也就是標題上說的,為什么 foreach 中不允許對元素進行 add 和 remove,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-10-10
  • Java自定義類加載器實現(xiàn)類隔離詳解

    Java自定義類加載器實現(xiàn)類隔離詳解

    由于每種組件的不同版本所依賴的jar包不同,我們可以借鑒tomcat的實現(xiàn)方式,通過自定義類加載器打破雙親委派機制來實現(xiàn)類隔離,從而達到操作多組件多版本的目的。本文就來和大家詳細聊聊實現(xiàn)方法
    2023-03-03
  • Go Java算法之簡化路徑實例詳解

    Go Java算法之簡化路徑實例詳解

    這篇文章主要為大家介紹了Go Java算法之簡化路徑實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 在MyBatis的XML映射文件中<trim>元素所有場景下的完整使用示例代碼

    在MyBatis的XML映射文件中<trim>元素所有場景下的完整使用示例代碼

    在MyBatis的XML映射文件中,<trim>元素用于動態(tài)添加SQL語句的一部分,處理前綴、后綴及多余的逗號或連接符,示例展示了如何在UPDATE、SELECT、INSERT和SQL片段中使用<trim>元素,以實現(xiàn)動態(tài)的SQL構建,感興趣的朋友一起看看吧
    2025-01-01
  • SpringBoot實現(xiàn)圖形驗證碼的操作方法

    SpringBoot實現(xiàn)圖形驗證碼的操作方法

    隨著安全性的要求越來越高,目前許多項目中都使用了驗證碼,驗證碼也有各種類型,如 圖形驗證碼、短信驗證碼、郵件驗證碼、人臉識別等,本文給大家介紹SpringBoot實現(xiàn)圖形驗證碼的方法,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 全面詳解java代碼重構與設計模式

    全面詳解java代碼重構與設計模式

    這篇文章主要為大家介紹了全面詳解java代碼重構與設計模式的全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • ConcurrentMap.putIfAbsent(key,value)用法實例

    ConcurrentMap.putIfAbsent(key,value)用法實例

    這篇文章主要介紹了ConcurrentMap.putIfAbsent(key,value)用法實例,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Spring @Value如何通過${}、#{}注入不同類型的值

    Spring @Value如何通過${}、#{}注入不同類型的值

    這篇文章主要介紹了Spring @Value如何通過${}、#{}注入不同類型的值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • spring cloud gateway請求跨域問題解決方案

    spring cloud gateway請求跨域問題解決方案

    這篇文章主要介紹了spring cloud gateway請求跨域問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論