前端导出excel有很多的操作可能,可以使用xlsx插件进行表格的导出,但是会导出两份,需要处理一下。
第一步引入:
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
exportExcel (className,excelName) {
var xlsxParam = { raw: true } // 导出的内容只做解析,不进行格式转换
let fix = document.querySelector('.vxe-table--fixed-left-wrapper');
let wb;
if(fix){ //判断要导出的节点中是否有fixed的表格,如果有,转换excel时先将该dom移除,然后append回去
wb = XLSX.utils.table_to_book(document.querySelector(className).removeChild(fix),xlsxParam);
document.querySelector(className).appendChild(fix);
}else{
wb = XLSX.utils.table_to_book(document.querySelector(className),xlsxParam);
}
var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });
try {
FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), excelName)
} catch (e) {
if (typeof console !== 'undefined') {
}
}
return wbout
},