我在网上找到了很多可以用的导出方法 但是都不是很自由 这里我推荐一个自用的导出方法
通过数组导出excel
第一步
npm install --save xlsx file-saver
然后
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
var _data = [
[ "id", "name", "value" ],
[ 1, "sheetjs", 7262 ],
[ 2, "js-xlsx", 6969 ]
];
const ws= XLSX.utils.aoa_to_sheet(_data);
/* generate workbook and add the worksheet */
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
/* save to file */
XLSX.writeFile(wb, 'SheetJS.xlsx');
按照这个格式就可以导出想要的excel表格
下面写个例子
exportExcel() {
this.condition = {
limit: this.total
}
API.toolsList(this.condition).then(res => {
this.exportList = res.data.data
}).finally(() => {
const exportData = []
const exportTitle = []
const titleObj = this.toolTables
exportData.push(this.needExport)
for (const keys of this.needExport) {
exportTitle.push(Object.keys(titleObj).find(key => titleObj[key] === keys))
}
this.exportList.forEach(item => {
const arr = []
for (const key of exportTitle) {
arr.push(item[key])
}
exportData.push(arr)
})
const ws = XLSX.utils.aoa_to_sheet(exportData)
const wb = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1')
/* save to file */
XLSX.writeFile(wb, 'SheetJS.xlsx')
})
}
总结一下 就是 data 里面一个数组 一个是title 一个是内容 需要思考的就是把两个arr 塞进data里 就实现了excel的导出