vue 导出数据
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); } }