vue+xlsx前端导出elcexl表格+进阶玩法导出带下拉框表格+导出多个工作表
<template>
<div>
<el-button @click="exportTable">导出表格</el-button>
</div>
</template>
<script>
import XLSX from 'xlsx';
export default {
methods: {
exportTable() {
// 假设你的表格数据是从某个组件获取的
const tableData = this.$refs.yourTableComponent.tableData;
// 创建工作簿
const wb = XLSX.utils.book_new();
// 转换数据和创建工作表
const ws = XLSX.utils.json_to_sheet(tableData, {
header: ["列1", "列2", "列3"], // 表头
skipHeader: true // 跳过第一行作为表头
});
// 设置B2单元格下拉选项
const refA1 = XLSX.utils.encode_cell({ c: 0, r: 1 }); // "A1"
const refB2 = XLSX.utils.encode_cell({ c: 1, r: 1 }); // "B2"
const refC3 = XLSX.utils.encode_cell({ c: 2, r: 1 }); // "C3"
const ref = XLSX.utils.encode_range({
s: { r: 1, c: 1 },
e: { r: 1, c: 1 }
});
ws[`${ref}`] = {
t: 'shared',
s: {
ref: 'B2:B2',
value: '1,2,3', // 下拉选项值
editRef: refA1 + ':' + refC3, // 应用下拉选项的单元格范围
}
};
// 添加工作表
XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
// 创建并下载文件
XLSX.writeFile(wb, "表格.xlsx");
}
}
};
</script>
这个代码示例展示了如何在Vue中使用xlsx
库来导出一个表格,并设置特定单元格的下拉选项。在实际应用中,你需要根据你的数据结构和组件状态来调整表格数据的获取和导出细节。
评论已关闭