1.點擊“導出數據按鈕”
getExportList(data) { getExport(data).then((res) => { // 導出數據調用接口 this.checkedtages2 = '' this.exportPathMethod(res.data)// 導出數據做處理 }) },
//最重要的一部 exportPathMethod(data) { // 要導出的json數據 var jsonData = data let str1 = '' for (const i in jsonData[0]) { str1 += ',' + i } str1 = str1.substring(1) str1 = str1 + '\n' let str = `${str1}` // 列標題,逗號隔開,每一個逗號就是隔開一個單元格 // let str = `用戶名稱,會員等級,最近購買時間,消費次數,消費金額,用戶賬號,訂單均價\n` // 增加\t為了不讓表格顯示科學計數法或者其他格式 for (let i = 0; i < jsonData.length; i++) { for (const item in jsonData[i]) { str += `${jsonData[i][item] + '\t'},` } str += '\n' } // encodeURIComponent解決中文亂碼 const uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str) // 通過創建a標簽實現 var link = document.createElement('a') link.href = uri // 對下載的文件命名 link.download = '客戶管理列表.xls' document.body.appendChild(link) link.click() },
vue 下載文件
excelDown:function(type,data){ var self = this; self.fileExcelIdString=""; if(type===2){ if(!(self.selectedFileData.length>0)){ return self.$message({ type: 'info', message: '請先選擇數據!' }); } self.selectedFileData.forEach(function (item,index) { self.fileExcelIdString=self.fileExcelIdString+item.fileId+"," self.excelDownStart(item.fileName,item.fileId); }); self.fileExcelIdString= self.fileExcelIdString.substr(0,self.fileExcelIdString.length-1); }; if(type===1){ self.fileExcelIdString=self.fileExcelIdString+data.fileId; self.excelDownStart(data.fileName,data.fileId) } }, excelDownStart:function (fileName,fileId) { var url=_contextPath + "/dataps/inter/download/"+fileId;//根據ID下載地址 var userAgent = navigator.userAgent.toLowerCase(); var isIe = /(msie|trident).*?([\d.]+)/.test(userAgent); if (isIe) { // IE window.open(url, '_blank') } else { var a = document.createElement('a'); // 創建a標簽 var e = document.createEvent('MouseEvents'); // 創建鼠標事件對象 e.initEvent('click', false, false) // 初始化事件對象 a.href = url; // 設置下載地址 a.download = fileName + moment(new Date().getTime()).format('YYYY-MM-DD HH:mm:ss'); // 設置下載文件名 a.dispatchEvent(e); } }