效果图

code
<script> import XLSX from 'xlsx' export default { data () { return { dialogVisible: false, monitorData: [], } }, methods: { exportExcel () { // header1 一行九列 // header2 第二行2列 // header3 第三行9列 let wsMerge = [ { s: { r: 0, c: 0 }, e: { r: 0, c: 8 } }, { s: { r: 1, c: 0 }, e: { r: 1, c: 2 } }, { s: { r: 1, c: 3 }, e: { r: 1, c: 5 } }, { s: { r: 1, c: 6 }, e: { r: 1, c: 8 } } ] let headers = [ [this.monitorData[0].title], ['人数', '', '', '次数', '', '', '同时在线峰值', '', ''], ['总共', 'APP', 'PC', '总共', 'APP', 'PC', '总共', 'APP', 'PC'] ] let filterVal = ['count', 'count', 'count', 'count', 'count', 'count', 'count', 'count', 'count'] let list = this.monitorData let data = this.formatJson(filterVal, list) let ws = XLSX.utils.aoa_to_sheet(headers) XLSX.utils.sheet_add_aoa(ws, data, { origin: 'A4' }) let wb = XLSX.utils.book_new() XLSX.utils.book_append_sheet(wb, ws, 'Sheet1') ws['!merges'] = wsMerge XLSX.writeFile(wb, new Date().getTime() + '.xlsx') }, formatJson (filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => { // 个性化数据处理 return v[j] })) } } } </script>