element-plus el-table xlsx导出数据
时间: 2023-05-24 11:07:36 浏览: 545
在element-plus中使用el-table和xlsx库实现导出数据的步骤如下:
1. 引入xlsx库
```
import XLSX from 'xlsx';
```
2. 定义导出函数
```
const exportExcel = (data, filename, header) => {
/* 创建sheet */
const worksheet = XLSX.utils.json_to_sheet(data);
/* 将header添加到第一行 */
if(header) {
const headerArr = [];
for(const key in header) {
headerArr.push(header[key]);
}
headerArr.unshift('');
XLSX.utils.sheet_add_aoa(worksheet, [headerArr], { origin: 'A1' });
}
/* 创建新的workbook并将sheet添加到workbook */
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
/* 将workbook转换为blob文件,并下载 */
XLSX.writeFile(workbook, `${filename}.xlsx`);
}
```
3. 触发导出函数
```
<template>
<el-button @click="exportTable" type="primary">导出</el-button>
<el-table ref="table" :data="tableData" style="width: 100%">
...
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [/* 数据 */],
tableHeader: { /* 表头 */ }
}
},
methods: {
exportTable() {
const table = this.$refs.table;
/* 获取所有数据 */
const data = table.store.states.data;
/* 添加序号 */
data.forEach((item, index) => {
item.index = index + 1;
});
/* 导出数据 */
exportExcel(data, '文件名', this.tableHeader);
}
}
}
</script>
```
阅读全文