日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例

發(fā)布時間:2023/12/10 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家JavaWeb項目中應(yīng)該都會遇到下載文件或?qū)С鰁xcel的需求,特此分享此文,簡單明了,可用于實際項目。

1、前端頁面,模擬兩個按鈕:下載文件、導(dǎo)出excel?

注:本案例是使用 SpringBoot 構(gòu)建的項目,我這里使用的是之前介紹SpringBoot 實現(xiàn)CORS而創(chuàng)建的工程,也可以自己重新創(chuàng)建一個新的SpringBoot項目即可,然后新增如下一個html或jsp頁面,使用iframe隱藏域,這里根據(jù)id給 iframe標(biāo)簽,設(shè)置src屬性(改變),會發(fā)起一個請求。

不熟悉的可以移步我的另一篇文章:https://blog.csdn.net/a1036645146/article/details/98843846?

2、下載文件

這里只是測試,直接是一段自定義內(nèi)容,然后通過 OutputStream 輸出流進(jìn)行響應(yīng)。如果是實際業(yè)務(wù),如需從FAST服務(wù)器下載,將此替換為自己的下載方法即可,并將下載的內(nèi)容轉(zhuǎn)為byte[] 字節(jié)數(shù)組,通過?OutputStream 輸出字節(jié)內(nèi)容即可,并且記得設(shè)置response響應(yīng)頭信息等,具體如下:

/*** @description: 下載測試* @author: xianhao_gan* @date: 2019/08/15**/ @Controller public class TestController {@RequestMapping("/download")public void download(HttpServletRequest request, HttpServletResponse response){try {//用于輸出響應(yīng)流OutputStream out = response.getOutputStream();byte[] content = "測試下載內(nèi)容:hello,stwen.".getBytes();//如果從自己fast下載//String path = request.getParameter("path");//byte[] content = FDSTUtil.download(path);//文件名也可以從前端傳遞過來//String fileName = request.getParameter("fileName");String fileName = "stwen.txt";//設(shè)置響應(yīng)頭信息// rep.setContentType("Image/" + fileName); // 設(shè)置相應(yīng)類型,告訴瀏覽器輸出的內(nèi)容為圖片response.setHeader("Pragma", "No-cache"); // 設(shè)置響應(yīng)頭信息,告訴瀏覽器不要緩存此內(nèi)容response.setHeader("Cache-Control", "no-cache");response.setHeader("Content-Disposition", "attachment;filename=" +new String(fileName.getBytes("UTF-8"), "iso-8859-1"));response.setContentType("application/octet-stream");//輸出并關(guān)閉out.write(content);out.flush();out.close();} catch (IOException e) {e.printStackTrace();}} }

3、導(dǎo)出excel文件

提供一個控制器接口方法,接收前端導(dǎo)出請求:

@RequestMapping("/excel")public void excel(HttpServletRequest request, HttpServletResponse response) throws Exception{OutputStream out = response.getOutputStream();try {//封裝好數(shù)據(jù)到Workbook對象,然后通過OutputStream輸出Workbook workBook = ExcelUtil.exportExcel();if (workBook != null) {String name = new String("stwen.xls");response.reset();response.setContentType("Content-Type: application/vnd.ms-excel");response.addHeader("Content-Disposition", "attachment;filename=\"" + name + "\"");workBook.write(out);out.flush();out.close();}} catch (Exception e) {e.printStackTrace();//先清空輸出流里面的內(nèi)容response.reset();String returnS = "<script type='text/javascript'>alert('導(dǎo)出失敗!');</script>";out.write(returnS.getBytes("UTF-8"));}}

WorkBook依賴如下:

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency>

excelUtil工具類,實際項目,可能需要讀取數(shù)據(jù)庫,而excel也可以配置模板,封裝到Workbook 對象,返回控制器,通過輸出流響應(yīng)

package com.stwen.cors.util;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook;/*** @description: excel工具類* @author: xianhao_gan* @date: 2019/08/15**/ public class ExcelUtil {/*** 導(dǎo)出excel* @return* @throws Exception*/public static Workbook exportExcel() throws Exception{//可選擇模板是.xls格式還是.xlsx格式HSSFWorkbook workbook = new HSSFWorkbook();//創(chuàng)建一個sheet表,可設(shè)置多個sheetSheet sheet = workbook.createSheet("sheet1");sheet.setColumnWidth(0,6000 );sheet.setColumnWidth(1,6000 );sheet.setColumnWidth(2,6000 );String []tableHeader = new String[] {"工號","姓名","職位"};HSSFRow firstRow = (HSSFRow) sheet.createRow((short) 0);for(int i = 0; i < tableHeader.length; i++){HSSFCell cell = firstRow.createCell((short)i);cell.setCellStyle(workbook.createCellStyle());cell.setCellValue(tableHeader[i]);}return workbook;} }

4、啟動項目

瀏覽器訪問項目地址,然后分別點擊“下載文件”、“導(dǎo)出excel”

stwen.txt文件內(nèi)容如下:

stwen.xls?

看完后是不是覺得下載很簡單,覺得有用點個贊再走吧0.0,整理不易。

本文來自:CSDN? 作者:stwen_gan??https://blog.csdn.net/a1036645146/article/details/99639041

轉(zhuǎn)載請注明出處,謝謝。

總結(jié)

以上是生活随笔為你收集整理的SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 夜夜综合 | 美女又黄又免费的视频 | 国产精品wwww | 1024av在线 | av卡一卡二 | 插插插av | 亚洲av永久无码精品一百度影院 | 精品欧美一区二区三区在线观看 | 尤物网在线 | 国产精品1 | 美国一级特黄 | 一区二区三区视频免费视 | 欧美精品成人久久 | 秋霞影院午夜丰满少妇在线视频 | 国产亚洲91 | 91天天操 | 国产农村妇女精品 | 激情四射婷婷 | 亚洲精品国产精华液 | 国产一区二区三区免费 | 靠逼动漫| 色综合久久88色综合天天免费 | 国产精品1000| 成人xxx| 色妻av| 亚洲性天堂| 91成人免费在线 | 前任攻略在线观看免费完整版 | 尤物在线观看 | 福利电影在线播放 | 国内av片 | 最新日本中文字幕 | 日韩视频不卡 | 日韩123区 | 人人干人人爽 | 青青草华人在线 | 天堂资源网 | 日韩精品乱码久久久久久 | 精品亚洲一区二区 | 日本在线观看免费 | 国产精品不卡一区二区三区 | 亚洲第一国产视频 | 成年黄色网 | 激情国产一区 | 欧美亚洲精品在线观看 | 熟女视频一区二区三区 | 女人扒开屁股让男人捅 | 91精品啪在线观看国产线免费 | 成人免费大全 | 国产夫妻视频 | 有声小说 成人专区 | 狠狠干干| 国内爆初菊对白视频 | 亚洲69 | 久久综合88 | 国产黄频| 国产美女自拍 | 女生扒开尿口让男生桶 | 中文字幕一区二区三区精彩视频 | 97在线免费视频 | 蜜臀久久99精品久久久无需会员 | 欧美成人国产精品高潮 | 免费看黄20分钟 | 肉大捧一进一出免费视频 | jvid视频 | 日本三级一区二区三区 | 午夜视频在线瓜伦 | 黄色三级小说 | 理论片琪琪午夜电影 | 真实的国产乱xxxx在线 | 免播放器av | 激情综合站 | 国产精品天天干 | 五月婷婷久久综合 | 一级黄色免费网站 | 中字av在线| 欧美一区二区三区黄色 | 国产成人无码精品久久 | 99国产精品人妻噜啊噜 | 豆花视频在线 | 伊人久久久久噜噜噜亚洲熟女综合 | 四虎午夜影院 | 97精品久久久 | 激情六月综合 | 视频一二区 | 日本少妇一区二区三区 | 男人天堂网在线观看 | 国内精品视频 | 日韩在线视频一区二区三区 | 青青操在线| 九九热在线精品视频 | 欧美bbbbb | 神马久久久久久久久久久 | 亚洲熟妇无码久久精品 | 五月天开心网 | 免费看黄色小视频 | 国产日韩欧美在线 | 在线免费观看福利 | 男人的天堂亚洲 |