前端調用后端接口下載excel文件「親測可用」


今天有一個導出Excel的需求,因為之前做的都是前后端分離的項目,前端代碼壓根就不用考慮,后台只管接收參數,返回數據流就ok了。但是這次前后端不分離的項目就踩了坑。
因為我之前看過相關教程,前端可以直接通過 window.location.href = '接口地址' 將Excel下載下來,但是這種方式有個很大的弊端,只能發送get請求。如果說我們需要對數據進行模糊查詢后導出,就無法實現了。
不過在經過了我一番百度之后,找到了解決方法......

前端導出Excel的方式

1.window.location.href = '接口地址

  • 缺點:無法發送post請求

2.利用隱藏表單解決(這里用的是JQuery的方法,所以使用的時候要記得引入JQuery)

// 導出,使用這種方式可以,使用ajax請求不可以導出excel
function exportExcel(){
    let form = $("<form>"); //創建form標簽
    form.attr("style","display:none");
    form.attr("method","post");//設置請求方式
    form.attr("action","${base}/kdOrder/exportExcel"); //action屬性設置請求路徑
    $("body").append(form); //頁面添加form標簽

    //訂單號輸入框
    let orderNo = $("<input>") //創建input標簽
    orderNo.attr("type","hidden") //設置隱藏域
    orderNo.attr("name","orderNo") //設置發送后台數據的參數名
    orderNo.attr("value",$('#selectOrder').val().trim());
    
    form.append(orderNo);
    form.submit();//表單提交即可下載!
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM