一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - SpringMvc導出Excel實例代碼

SpringMvc導出Excel實例代碼

2020-07-23 12:02crossoverJie JAVA教程

本篇文章主要介紹了SpringMvc導出Excel實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前言

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

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

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

Struts2的方式

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

?
1
2
3
4
5
6
7
8
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();
}

配置文件:

?
1
2
3
4
5
6
7
<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的方式

先貼代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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的頭信息中設置相應的輸出信息即可。

總結(jié)

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

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

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

原文鏈接:http://www.jianshu.com/p/9f57cb7ab6ae#

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: avtt在线播放 | 男人的天堂在线观看入口 | 啊皇上你好大要知画 | 毛片免费毛片一级jjj毛片 | 亚洲成人黄色网址 | 日本护士撒尿xxxx欧美 | 无颜之月全集免费观看 | 欧亚专线欧洲m码可遇不可求 | 91九色最新地址 | 91九色视频无限观看免费 | 青草午夜精品视频在线观看 | 四虎影院网址大全 | 亚洲天天综合 | 冰漪丰满大乳人体图片欣赏 | 黄版快手| 青青青视频蜜桃一区二区 | bt天堂午夜国产精品 | 成人一级黄色大片 | 射逼网站| 爱福利视频一区 | 国产精品一区二区三区免费 | 色狠狠成人综合网 | 嫩草影院永久在线一二三四 | 久久国产乱子伦精品免费不卡 | 亚洲视频一区在线播放 | 视频一区二区在线 | 欧美乱码视频 | 天天色天天色天天色 | 99久久精品免费看国产一区 | 天天摸天天碰色综合网 | 狠狠色狠狠色综合婷婷tag | 日本一卡=卡三卡免费 | 男gaygays免费网站多人 | 日韩欧美在线一区二区三区 | 被强迫变性翘秘书 | 亚洲第一在线播放 | 草莓香蕉绿巨人丝瓜榴莲污在线观看 | 激情自拍网 | 青柠网在线观看视频 | cao逼视频| 亚洲欧美国产自拍 |