vue項目中,實現(xiàn)下載表格的功能

常常在項目開發(fā)中,我們會遇到下載表格到本地的功能,一般是前端發(fā)送請求,后端返回數(shù)據(jù)流的形式。
以下方法是通過純js實現(xiàn)的表格下載,親測有效哦。
html:

<el-button  @click="exportExcel" type="primary" class="upload-demo">導出表格</el-button>

js:
// 下載表格文件

exportExcel () {
    axios.get(url, {
            headers:{
                "Admin_token":token
            },
            responseType: 'blob', //二進制流
        }).then(function (res) {
            if(!res) return
            const content = res
            const blob = new Blob([content], {type: 'application/vnd.ms-excel'})
            const fileName = '下載表格'+ '.xls'
            if ('download' in document.createElement('a')) { // 非IE下載
              const elink = document.createElement('a')
              elink.download = fileName
              elink.style.display = 'none'
              elink.href = URL.createObjectURL(blob)
              document.body.appendChild(elink)
              elink.click()
              URL.revokeObjectURL(elink.href) // 釋放URL 對象
              document.body.removeChild(elink)
            } else { // IE10+下載
              navigator.msSaveBlob(blob, fileName)
            }
        }).catch(function (error) {
            console.log(error)
        })
    }

需要注意的地方是在發(fā)送請求的時候,需要設置responseType: 'blob'

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容