<el-button type="primary" @click="_export">导出</el-button>
import XLSX from 'xlsx'
_export() {
//需要导出的数据
const data = {
sheet1: this.data.sheet1,
sheet2: this.data.sheet2,
sheet3: this.data.sheet3,
sheet4: this.data.sheet4
}
let columnHeaders = {
sheet1: {
name: '名称',
count: '数量'
},
sheet2: {
name: '名称',
count: '数量'
},
sheet3: {
name: '名称',
count: '数量'
},
sheet4: {
name: '名称',
count: '数量'
}
}
let wscols = [
{ wch: 20 },
{ wch: 20 }
] //设置字段宽度
let sheetNames = []
let sheetsList = {}
const wb = XLSX.utils.book_new()
for (let key in data) {
sheetNames.push(key)
let columnHeader = columnHeaders[key] // 此处是每个sheet的表头
let temp = this.transferData(data[key], columnHeader)
sheetsList[key] = XLSX.utils.aoa_to_sheet(temp)
sheetsList[key]['!cols'] = wscols
}
wb['SheetNames'] = sheetNames
wb['Sheets'] = sheetsList
XLSX.writeFile(wb, '表格名称.xlsx')
},
transferData(data, columnHeader) {
let content = [],
header = []
for (let i in columnHeader) {
header.push(columnHeader[i])
}
content.push(header)
data.forEach((item, index) => {
let arr = []
for (let i in columnHeader) {
arr.push(item[i])
}
content.push(arr)
})
return content
},