将table导出为xlsx
import FileSaver from 'file-saver' import XLSX from 'xlsx' // /* generate workbook object from table */ // // 转换成excel时,使用原始的格式 let xlsxParam = {raw: true}; // el-table的fixed属性来让某一列固定,但elementui的实现方式是:创建了两个tabledom,通过一个隐藏一个显示来实现交互效果。 // 当导出整个el-table 就会将两个div内的table都导出,导致数据重复。移除重复table let fix = document.querySelector('.el-table__fixed'); let wb; if (fix) { wb = XLSX.utils.table_to_book(document.querySelector('.el-table').removeChild(fix), xlsxParam); document.querySelector('.el-table').appendChild(fix); } else { wb = XLSX.utils.table_to_book(document.querySelector('.el-table'), xlsxParam); } /* get binary string as output */ let wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: true, type: 'array'}); try { FileSaver.saveAs(new Blob([wbout], {type: 'application/octet-stream'}), '差评查询-' + (moment(new Date()).format('YYYYMMDD')) + '.xlsx'); } catch (e) { if (typeof console !== 'undefined') { console.log(e, wbout) } } finally { this.isExport = false; this.pageSize = pageSize } return wbout;
数组对象去重
// 数组对象去重 let hash = {}; this.targetList = this.targetList.reduce(function (item, next) { hash[next.name] ? '' : hash[next.name] = true && item.push(next); return item }, [])