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 + ' ' let str = `${str1}` // 列标题,逗号隔开,每一个逗号就是隔开一个单元格 // let str = `用户名称,会员等级,最近购买时间,消费次数,消费金额,用户账号,订单均价 ` // 增加 为了不让表格显示科学计数法或者其他格式 for (let i = 0; i < jsonData.length; i++) { for (const item in jsonData[i]) { str += `${jsonData[i][item] + ' '},` } str += ' ' } // 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);
}
}