最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

8df0d35a91984785ab319909266df5b9

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

步驟

1.導(dǎo)入 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 設(shè)置響應(yīng)類型和編碼為 “application/octet-stream”。

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

3.通過使用 SXSSFWorkbook 設(shè)置 Excel 表

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

4.設(shè)置響應(yīng)頭

//設(shè)置響應(yīng)頭
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 設(shè)置 Excel 表
//2、設(shè)置響應(yīng)頭
//3、輸出流輸出
@RequestMapping(value = "/down", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public void downXlsx(HttpServletResponse response) {
    //設(shè)置表名
    String fileName = "銷售榜單.xlsx";
    SXSSFWorkbook workbook = new SXSSFWorkbook();
    //設(shè)置表格名稱
    SXSSFSheet sheet = workbook.createSheet("銷售榜單");
    //設(shè)置表格默認(rèn)寬度30
    sheet.setDefaultColumnWidth(30);
    //設(shè)置 sheet 表格的第0行
    SXSSFRow row = sheet.createRow(0);
    //設(shè)置 sheet 表格的第0行第0列的值
    row.createCell(0).setCellValue("商品名稱");
    //設(shè)置 sheet 表格的第0行第1列的值
    row.createCell(1).setCellValue("數(shù)量");
    OutputStream out = null;
    try {
        //設(shè)置響應(yīng)頭
        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();
        }
    }
}

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

相關(guān)文章

  • Java對接MQTT協(xié)議的完整實現(xiàn)示例代碼

    Java對接MQTT協(xié)議的完整實現(xiàn)示例代碼

    MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議,MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛,這篇文章主要介紹了Java對接MQTT協(xié)議的完整實現(xiàn),需要的朋友可以參考下
    2025-08-08
  • spring中EnvironmentPostProcessor接口的實現(xiàn)

    spring中EnvironmentPostProcessor接口的實現(xiàn)

    EnvironmentPostProcessor是SpringBoot用于動態(tài)修改環(huán)境配置的接口,本文主要介紹了spring中EnvironmentPostProcessor接口的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-05-05
  • JAVA 十六進(jìn)制與字符串的轉(zhuǎn)換

    JAVA 十六進(jìn)制與字符串的轉(zhuǎn)換

    筆者前幾日在開服過程中需要將字符串轉(zhuǎn)化成為16進(jìn)制的字符串,在網(wǎng)上找到了一些方法嘗試之后,均發(fā)現(xiàn)存在一個問題-->字符串轉(zhuǎn)為16進(jìn)制后再轉(zhuǎn)回來,英文正常,中文出現(xiàn)亂碼
    2009-05-05
  • SpringBoot整合RabbitMQ實現(xiàn)消息確認(rèn)機(jī)制

    SpringBoot整合RabbitMQ實現(xiàn)消息確認(rèn)機(jī)制

    這篇文章主要介紹了SpringBoot整合RabbitMQ實現(xiàn)消息確認(rèn)機(jī)制,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java枚舉_動力節(jié)點Java學(xué)院整理

    Java枚舉_動力節(jié)點Java學(xué)院整理

    enum 的全稱為 enumeration, 是 JDK 5 中引入的新特性,存放在 java.lang 包中。這篇文章給大家介紹Java枚舉相關(guān)知識,需要的的朋友參考下
    2017-04-04
  • Java?中的排序Comparable?與?Comparator?的使用與區(qū)別對比解析

    Java?中的排序Comparable?與?Comparator?的使用與區(qū)別對比解析

    本文給大家介紹Java中的排序Comparable與Comparator的使用與區(qū)別對比,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • 使用IDEA打jar包的詳細(xì)圖文教程

    使用IDEA打jar包的詳細(xì)圖文教程

    JAR文件是一種壓縮文件,與常見的ZIP壓縮文件兼容,被稱為JAR包,下面這篇文章主要給大家介紹了關(guān)于使用IDEA打jar包的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java實現(xiàn)Treap樹的示例代碼

    Java實現(xiàn)Treap樹的示例代碼

    本文主要介紹了Java實現(xiàn)Treap樹的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • java獲取本地文件的多種方式實現(xiàn)與比較

    java獲取本地文件的多種方式實現(xiàn)與比較

    這篇文章主要為大家詳細(xì)介紹了java獲取本地文件的多種方式實現(xiàn)與結(jié)果比較,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • SpringBoot中application.properties與application.yml區(qū)別小結(jié)

    SpringBoot中application.properties與application.yml區(qū)別小結(jié)

    本文主要介紹了SpringBoot中application.properties與application.yml區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10

最新評論

乌兰县| 咸丰县| 十堰市| 五莲县| 洪江市| 济宁市| 塔城市| 泗洪县| 沽源县| 高州市| 襄樊市| 巫溪县| 阿勒泰市| 南汇区| 广昌县| 始兴县| 利津县| 崇阳县| 昌图县| 承德市| 兴仁县| 九龙县| 德昌县| 通城县| 新闻| 开远市| 宝丰县| 南投市| 平遥县| 永川市| 东光县| 辉县市| 自治县| 西盟| 荣成市| 玛沁县| 长治县| 沅陵县| 皮山县| 潼关县| 秦皇岛市|