element导出功能设置不导出列
给需要导出的表格加上id,调用exportTableAsXLSX方法导出
找到不需要导出的column 设置class-name="noExport"即可
这样导出的excle就没有第一二列了
excle导出脚本:
// 导入依赖项
import FileSaver from 'file-saver'
import * as XLSX from 'xlsx'
// 导入uuid.js工具
import { v4 as uuidv4 } from 'uuid'
/**
* elemet-ui el-table数据导出为xlsx表格
* @param {*} _targetId Element-UI el-table组件的id值
*/
export const exportTableAsXLSX = function (_targetId) {
let tables = document.getElementById(_targetId).cloneNode(true)
let header = tables.querySelector('table.el-table__header')
let body = tables.querySelectorAll('table.el-table__body').length == 1 ? tables.querySelectorAll('table.el-table__body')[0] : tables.querySelectorAll('table.el-table__body')[tables.querySelectorAll('table.el-table__body').length - 1]
let delCell = tables.querySelectorAll('.noExport')
if (delCell && delCell.length){
for (let i = 0;i < delCell.length;i++){
delCell[i].remove()
}
}
let wrapdiv = document.createElement('div')
wrapdiv.appendChild(header)
wrapdiv.appendChild(body)
console.log('div:', wrapdiv)
// 根据table生成Book工作簿
let wb = XLSX.utils.table_to_book(wrapdiv)
// 将Book工作簿作为输出
let wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: true,
type: 'array'
})
// 尝试将当前table内容保存为excel文件
try {
FileSaver.saveAs(
// 被导出的blob二进制对象
new Blob([wbout], { type: 'application/octet-stream' }),
// 导出文件的名称+后缀名
uuidv4() + '.xlsx'
)
} catch (e) {
if (typeof console !== 'undefined') console.log(e, wbout)
}
}