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

SpringMvc導(dǎo)出Excel實例代碼

 更新時間:2017年01月06日 09:32:41   作者:crossoverJie  
本篇文章主要介紹了SpringMvc導(dǎo)出Excel實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

相信很多朋友在實際工作中都會要將數(shù)據(jù)導(dǎo)出成Excel的需求,通常這樣的做法有兩種。

一是采用JXL來生成Excel,之后保存到服務(wù)器,然后在生成頁面之后下載該文件。

二是使用POI來生成Excel,之后使用Stream的方式輸出到前臺直接下載(ps:當(dāng)然也可以生成到服務(wù)器中再下載。)。這里我們討論第二種。

Struts2的方式

通常我會將已經(jīng)生成好的HSSFWorkbook放到一個InputStream中,然后再到xml配置文件中將返回結(jié)果更改為stream的方式。如下:

private void responseData(HSSFWorkbook wb) throws IOException {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  wb.write(baos);
  baos.flush();
  byte[] aa = baos.toByteArray();
  excelStream = new ByteArrayInputStream(aa, 0, aa.length);
  baos.close();
}

配置文件:

<action name="exportXxx" class="xxxAction" method="exportXxx">
  <result name="exportSuccess" type="stream">
    <param name="inputName">excelStream</param>
    <param name="contentType">application/vnd.ms-excel</param>
    <param name="contentDisposition">attachment;filename="Undefined.xls"</param>
  </result>
</action>

這樣即可達到點擊鏈接即可直接下載文件的目的。

SpringMVC的方式

先貼代碼:

@RequestMapping("/exportXxx.action")
public void exportXxx(HttpServletRequest request, HttpServletResponse response,
    @RequestParam(value="scheduleId", defaultValue="0")int scheduleId){
  HSSFWorkbook wb = createExcel(scheduleId) ;
  try {
    response.setHeader("Content-Disposition", "attachment; filename=appointmentUser.xls");
    response.setContentType("application/vnd.ms-excel; charset=utf-8") ;
    OutputStream out = response.getOutputStream() ;
    wb.write(out) ;
    out.flush();
    out.close();
  } catch (IOException e) {
    e.printStackTrace();
  } 
}

其實springMVC和Struts2的原理上是一樣的,只是Struts2是才去配置文件的方式。首先是使用createExcel()這個方法來生成Excel并返回,最后利用response即可向前臺輸出Excel,這種方法是通用的,也可以試用與Servlet、Struts2等。我們只需要在response的頭信息中設(shè)置相應(yīng)的輸出信息即可。

總結(jié)

不管是使用Struts2,還是使用SpringMVC究其根本都是使用的response,所以只要我們把response理解透了不管是下載圖片、world、Excel還是其他什么文件都是一樣的。

GitHub地址:https://github.com/crossoverJie

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java方法覆蓋重寫實現(xiàn)原理解析

    Java方法覆蓋重寫實現(xiàn)原理解析

    這篇文章主要介紹了Java方法覆蓋重寫實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • RocketMQ消息存儲文件的加載與恢復(fù)機制源碼分析

    RocketMQ消息存儲文件的加載與恢復(fù)機制源碼分析

    這篇文章主要介紹了RocketMQ源碼分析之消息存儲文件的加載與恢復(fù)機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Spring事務(wù)隔離級別簡介及實例解析

    Spring事務(wù)隔離級別簡介及實例解析

    這篇文章主要介紹了Spring事務(wù)隔離級別簡介及實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • gRPC與SpringBoot整合思路和步驟

    gRPC與SpringBoot整合思路和步驟

    在現(xiàn)代微服務(wù)架構(gòu)中,gRPC已經(jīng)成為了非常受歡迎的通信協(xié)議,與SpringBoot整合,它為開發(fā)者提供了簡潔、高效構(gòu)建分布式應(yīng)用,在整合gRPC與SpringBoot時,將gRPC的服務(wù)端和客戶端分別封裝到SpringBoot的應(yīng)用中,感興趣的朋友一起看看吧
    2023-08-08
  • Java 17 更快的 LTS 節(jié)奏

    Java 17 更快的 LTS 節(jié)奏

    這篇文章主要介紹的是Java 17 更新后的LTS,現(xiàn)在 Java 17 的發(fā)布,讓 Java 11 成了 LTS 系列的次新版本,下面我們就來看看Java 17 的更新 LTS有什么變化吧
    2021-09-09
  • SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解

    SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解

    我們在寫單元測試時,有一個比較重要的要求是可以重復(fù)運行, 那么這樣就會有一個比較麻煩的問題:數(shù)據(jù)污染,所以本文為大家整理了兩個數(shù)據(jù)隔離的方式,希望對大家有所幫助
    2023-08-08
  • Toolbar制作菜單條過程詳解

    Toolbar制作菜單條過程詳解

    Toolbar制作菜單條過程詳解...
    2006-12-12
  • Springboot?+redis+谷歌開源Kaptcha實現(xiàn)圖片驗證碼功能

    Springboot?+redis+谷歌開源Kaptcha實現(xiàn)圖片驗證碼功能

    這篇文章主要介紹了Springboot?+redis+?歌開源Kaptcha實現(xiàn)圖片驗證碼功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 快速上手Java單元測試框架JUnit5

    快速上手Java單元測試框架JUnit5

    今天給大家?guī)淼氖顷P(guān)于Java單元測試的相關(guān)知識,文章圍繞著Java單元測試框架JUnit5展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 利用Log4j將不同Package的日志輸出到不同文件的方法

    利用Log4j將不同Package的日志輸出到不同文件的方法

    日志是應(yīng)用軟件中不可缺少的部分,Apache的開源項目log4j是一個功能強大的日志組件,提供方便的日志記錄。這篇文章主要介紹了利用Log4j將不同Package的日志輸出到不同文件的方法,需要的朋友可以參考借鑒,下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01

最新評論