實現檔案的下載功能(SpringMVC)
實現檔案的下載功能,下載excel檔案
兩種實現方式
一:下載本地指定路徑下的指定檔案。
前端程式碼:
<a id="download1" type="hidden" style='color:red' href='填寫後臺指定coltroller-方法的地址'> 下載資料</a>
Controller層程式碼:
@RequestMapping("download")
@ResponseBody
public ResponseEntity<byte[]> download() throws IOException {
ResponseEntity<byte[]> a = null;
try {
a = tranddelService.downloadExcel();
} catch (Exception e) {
e.printStackTrace();
}
return a;
}
ServiceImpl實現類方法:
public ResponseEntity<byte[]> downloadExcel() throws Exception{
//下載檔名稱-下載後文件的名稱+字尾
String name = "資料.xls";
//要下載檔案的路徑
String route = Utils.getRequest().getSession().getServletContext().getRealPath("/")+"file/qs/error/error.xls";
//根據路徑建立file
File file=new File(route); //存放太那些好的excel的絕對路徑
HttpHeaders headers = new HttpHeaders();
String fileName=new String(name.getBytes("UTF-8"),"iso-8859-1");//為了解決中文名稱亂碼問題
headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
Tip:
Utils.getRequest()為獲取request的方法,自己重寫的。
二:設定模板路徑,填充模板資訊,下載。
設定模板下載和按照路徑下載在實現層有區別
public ResponseEntity<byte[]> downloadExcel() throws Exception{
ExcelPoi excelPoi = new ExcelPoi();
/* 個入檔案資料的業務
Map<String , String> map = new HashMap<String, String>();
//轉date格式
Date today = DateUtil.strToDate(date);
//昨天的 yyyy-MM-dd
String Yesterday = DateUtil.get4yMd(DateUtil.getNextDay1(today));
//前天 yyyy-MM-dd
String TWOYesterday = DateUtil.get4yMd(DateUtil.getNextDay2(today));
map.put("Yesterday", Yesterday);
map.put("TWOYesterday", TWOYesterday);
List<Map<String, Object>> list = bankbilldataDao.getList("getBnoFile", map);*/
//拼接寫入excel檔案的那個資料格式
List<String[]> li = retExcelStr(list);
String filePath = excelPoi.writer(date, li);
String name = filePath.substring(filePath.length()-19,filePath.length());
File file=new File(filePath);
HttpHeaders headers = new HttpHeaders();
String fileName=new String(name.getBytes("UTF-8"),"iso-8859-1");//為了解決中文名稱亂碼問題
headers.setContentDispositionFormData("attachment", fileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}
//方法的作用:寫入檔案提出的公用類,會呼叫公用類,需要傳進去List<String[]>型別的資料寫入。String[]資料的順序就是一行的從左到右順序
public List<String[]> retExcelStr(List<Map<String, Object>> list){
List<String[]> retList = new ArrayList<String[]>();
StringBuilder stringBuilder = new StringBuilder();
if(list.size() > 0){
for (int i = 0;i < list.size();i++){
String bno = (String) list.get(i).get("BNO");
stringBuilder.append(bno).append(",");
}
String[] retStrArray = stringBuilder.substring(0,stringBuilder.length()-1).split(",");
retList.add(retStrArray);
}
return retList;
}
Tip:
excelPoi.writer(date, li);
public String writer(String date,List<String[]> list) {
try {
Workbook wb = null;
wb = new XSSFWorkbook( new FileInputStream(getRequest().getSession().getServletContext().getRealPath("/")+"mode/qsMode.xlsx"));
Sheet sheet1=wb.getSheetAt(0);
if(list.size()>0){
for(int i=0;i<list.get(0).length;i++){
Row row = (Row) sheet1.createRow(i+1);
Cell cell = row.createCell(0);
cell.setCellValue(list.get(0)[i]);
}
}
new File(getRequest().getSession().getServletContext().getRealPath("/")+"file/qs/"+new SimpleDateFormat("yyyyMMdd").format(new Date())).mkdirs();
f = getRequest().getSession().getServletContext().getRealPath("/")+"file/qs/"+new SimpleDateFormat("yyyyMMdd").format(new Date())+"/"+date+"商編檔案.xlsx";
OutputStream stream= new FileOutputStream(f);
wb.write(stream);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return f;
}
模板為:qsMode.xlsx檔案,只有第一列有頭資訊,只寫入第一列的值
相關推薦
SpringMVC實現檔案下載功能(檔案匯出功能)
1.頁面程式碼 <a class="layui-btn" href="${pageContext.request.contextPath}/bAndWListManage/downloadWhiteListTmp.do" onclick="downloadTempla
實現檔案的下載功能(SpringMVC)
實現檔案的下載功能,下載excel檔案 兩種實現方式 一:下載本地指定路徑下的指定檔案。 前端程式碼: <a id="download1" type="hidden" style='color:red' href='填寫後臺指定coltroller
Android開發中使用FileDownloader來實現檔案下載功能(總結一)
今天研究了一下Android開發中檔案下載功能,記錄一下。這篇部落格主要介紹第三方下載外掛:FileDownloader的單任務的使用方法,至於多工的後面會做補充記錄,再寫一篇博文。效果圖如下:(虛擬機器連不上網)1、首先是引用方法:implementation 'com.l
TP5的檔案下載功能(方法)
傳的值對的話可以直接用這個方法(記住不能封裝成model) public function xiazai(Request $request) { $file_n = Db::name("youxi")->where("uid",$request->pa
Spring Boot入門(11)實現檔案下載功能
在這篇部落格中,我們將展示如何在Spring Boot中實現檔案的下載功能。 還是遵循筆者寫部落格的一貫風格,簡單又不失詳細,實用又能讓你學會。 本次建立的Spring Boot專案的主要功能為檔案下載,而且這也是唯一功能,當然,作為例子,要儘可
SpringMVC的檔案下載功能(附上完整的springmvc的檔案上傳下載示例)
========================================================== 以下使用maven建立檔案上傳下載 ============================ pom.xml <project xmlns="h
通過base64實現圖片下載功能(基於vue)
code 不支持 dea methods navi text 完整 瀏覽器支持 stat 1. 使用場景 當我們處理圖片下載功能的時候,如果本地的圖片,那麽是可以通過canvas獲得圖片的base64的,方法如下。但是如果圖片的url存在跨域問題的話,下面的方法將行不通,這
不用寫Windows服務實現定時器功能(FluentScheduler )
ace 簡單 要去 job macbook sharp 管理 dia 做到 MacBook Pro 只有四個 USB Type-C 接口是否錯了? 一項新技術的誕生總會對已存在的事物造成沖擊或影響,如果大家都害怕沖擊與影響,那這個世界永遠像現在不變就行了,大家都好好的,待
Spring 實現檔案下載功能
方式1: public void download(HttpServletResponse response,@RequestParam(value="params") String params) throws IOException, DocumentException{ response
PHP+MySQL實現留言板功能(三)完整版
由於前段時間過於忙碌,加上小編有重灌了電腦系統,一直沒有去復現這個功能,後面復現過程中,程式碼做了一些調整。今天我將完整版的程式碼和sql檔案程式碼整理出來,供各位學習參考。 1.資料庫SQL檔案 index.php <html> <head>
PHP+MySQL實現留言板功能(二)
上次我們做了登陸註冊頁面的前端設計,這一節我們實現登陸和註冊 結合上次的登陸註冊頁面,這次我們先實現註冊,那麼,我們就要先寫註冊頁面的後端處理程式碼。我們將其命名為:doregister.php 程式碼如下。 <?php require_once "connet.php"; r
PHP+MySQL實現留言板功能(一)
1.登陸註冊頁面前端設計 由於小編第一次寫部落格,加上前端知識還不夠紮實,本文小編著重處理後端,及PHP連線資料庫,實現新增留言,刪除留言功能。話不多說,我們直接上程式碼。 登陸頁面設計:我們將其命名為:in
Spring Boot實現檔案下載功能
我們只需要建立一個控制器(Controler)檔案,即Controller目錄下的File_Download.java,其完整目錄如下: @Controller public class File_Download { //實現Spring Boot 的檔案下載功能,對映網址為/download
Android Webview實現檔案下載功能
在做美圖欣賞Android應用的時候,其中有涉及到Android應用下載的功能,這個應用本身其實也比較簡單,就是通過WebView控制呼叫相應的WEB頁面進行展示。剛開始以為和普通的檔案下載實現,只需要一個連結,然後點選就可以實現下載了,可是放到手機上試的時候,點選下載
Unity3D基於陀螺儀實現VR相機功能(轉)
轉至https://blog.csdn.net/m0_37998140/article/details/78255978?utm_source=blogxgwz7 Unity自帶陀螺儀功能,今天就利用陀螺儀實現一個VR相機功能。步驟如下: 開啟Unity,建立一個新的
Python3實現搶火車票功能(下)
導語 我們來完成專案的最後一部分內容即將兩項功能整合到一個Demo,供所有專業/非專業人士更加方便地使用。 開發工具 python版本:3.5.4 chromedriver_win32版本:2.3.4 chrome版本:65.0.3298.4 相關模組: req
使用ffmepg實現手機直播功能(Android)
客戶端的話最主要就是使用ffmpeg。 接下來要講的就是從ffmpeg的編譯開始,到編碼,以及推流,到解碼等過程。 ffmpeg的編譯 懂英文看這裡就行:ubuntu下的編譯指南 ffmpeg的編譯需要linux環境,我這裡使用的是虛擬機器(vmwa
javaWeb實現郵箱驗證功能(二)
上篇寫的實現基本上是一個工具類,並沒封裝成下圖這樣方式(梨視訊註冊介面),現在開始完善上篇的java郵箱啟用驗證功。 java郵箱驗證地址:https://blog.csdn.net/BlackPlus28/article/details/85044068 -----------------
Java後臺實現檔案下載功能
專案中使用的框架是SpringMVC+MyBatis 在專案中需要做一個功能。就是一個報表。然後根據報表生成一個csv格式的檔案。然後進行壓縮。並提供下載功能。 該“Excel下載” 功能的業務邏輯是當點選該按鈕。則需要把報表頁面上顯示的資料進行生成一個
java web Servlet--實現檔案下載功能
先上一段原始碼,這一段檔案下載,是在 Servlet 上面實現的。package util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import j