js方法实现
/**
* excel导出插件方法:转换导出的表格数据为二维数组
* @param {*} list 表格数据
* @param {*} exportHeader 导出表头(属性名)数组
* @returns
*/
export function transformTdata(list, exportHeader) {
const secondArray = []
list.forEach((item) => {
const item_array = []
for (const enKey in item) {
if (exportHeader.includes(enKey)) {
item_array.push(item[enKey])
}
}
secondArray.push(item_array)
})
return secondArray
}
excel导出具体实现
// 导出当前页数据
async exportTd() {
const excel = await import('@/vendor/Export2Excel')
// excel表示导入的模块对象
// 导出数据key对应关系
const headerShips = {
手机号: 'mobile',
姓名: 'username',
入职日期: 'timeOfEntry',
聘用形式: 'formOfEmployment',
工号: 'workNumber',
转正日期: 'correctionTime',
部门: 'departmentName'
} // 1. 表头
const header = Object.keys(headerShips)
// 2. 导出数据项
const exportHeader = Object.values(headerShips)
// 3. 表头对应数据(二维数组)
const data = transformTdata(this.employeeList, exportHeader)
data.forEach((item) => {
item[3] === 1 ? (item[3] = '正式') : item[3]
})
excel.export_json_to_excel({
// // 表头 必填
// header: ['姓名', '工资'],
// // 表头对应的具体数据 必填
// data: [
// ['刘备', 100],
// ['关羽', 500]
// ],
header,
data,
filename: 'excel-list', // 导出下载的文件名称
autoWidth: true, // 导出excel列宽度是否自适应
bookType: 'xlsx' // 导出生成的文件类型
})
},