日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美福利一区二区 | 国产欧美日韩精品一区二区三区 | 特黄av| 精品人妻伦九区久久aaa片 | 久久久免费在线观看 | 日韩精品成人在线 | 中文字幕5566 | 成人中文字幕在线观看 | 精品少妇人妻av免费久久洗澡 | 午夜av一区二区 | 国产精品水嫩水嫩 | 国产视频手机在线播放 | 日本少妇高潮喷水xxxxxxx | 免费黄色av电影 | 免费一区二区三区四区 | 亚洲一区av | av一区不卡 | 亚洲精品乱码久久久久久自慰 | 亚洲激情av在线 | 永久免费看片在线观看 | 国产视频久久久久久 | 四虎精品一区 | 国产亚洲精品成人av在线 | 蜜桃视频成人在线观看 | 草草影院网址 | 久久久欧美 | 又爽又黄又无遮挡 | 激情三级在线 | 精品国产一区二区三区四 | 欧美日韩国产精品成人 | 佐佐木明希电影 | 国产wwwwwww| 无码日韩人妻精品久久蜜桃 | 国产大屁股喷水视频在线观看 | 少妇一级淫免费观看 | 国产精品秘入口18禁麻豆免会员 | 青青草视频污 | 婷婷视频在线 | a黄色大片 | 成人午夜免费福利视频 | 神马伦理影视 | 禁漫天堂黄漫画无遮挡观看 | 成人一区二区在线 | 黄色污污网站在线观看 | 黄色一级免费片 | 日本中文字幕在线 | 亚洲国产精品99久久久久久久久 | 西欧free性满足hd老熟妇 | 欧美精品一二三区 | 韩国精品在线观看 | 日韩高清影视 | 91精品综合久久久久久 | 日韩精品免费一区 | 日韩黄色在线观看 | 在线观看三区 | 色网站在线播放 | 2022av在线| 亚洲小说网 | 亚洲视屏一区 | 亚洲一区二区三区 | 91欧美亚洲| 夜夜爽天天操 | a久久久久久 | 少妇搡bbbb搡bbb搡打电话 | 亚洲一级精品 | 亚洲乱妇老熟女爽到高潮的片 | 日本bdsm视频 | 欧美日韩国产一区二区 | 午夜久久福利 | 日韩激情四射 | 美国av毛片 | 欧美美女啪啪 | 伊人网免费视频 | 中文字幕亚洲无线码在线一区 | 日韩射| 国产又猛又黄又爽 | 欧美高清videos高潮hd | 全部免费毛片在线播放 | 国产日韩欧美视频在线 | 亚洲制服另类 | 亚洲一区二区三区在线视频观看 | 天天碰天天摸 | 伊人91在线 | www.夜夜爱 | 91福利一区 | 亚洲男人网站 | 少妇被躁爽到高潮 | 国产又粗又猛又爽又黄91精品 | 日日夜夜狠狠干 | 免费成人高清视频 | 韩国三级hd两男一女 | 蜜桃视频在线观看网站 | 国产又粗又长视频 | 肉丝超薄少妇一区二区三区 | 精品一区二区三区入口 | 国产黄视频网站 | 久久爱99 | 国产一级aa大片毛片 | 成人性生生活性生交3 |