简介:通过使用Vue3、xlsx、xlsx-style和element plus库,你可以轻松地实现表格的导出并设置格式。这个示例代码将帮助你创建一个导出按钮,当点击该按钮时,会将表格数据导出为Excel文件,并按照指定的格式进行排版。
首先,你需要在你的Vue3项目中安装所需的库。你可以通过以下命令来安装:
npm install xlsx xlsx-style element-plus --save
接下来,在你的Vue组件中引入所需的库:
import { createApp } from 'vue'import ElementPlus from 'element-plus'import 'element-plus/lib/theme-chalk/index.css'import XLSX from 'xlsx'
然后,在mounted()钩子中创建exportData函数:
export default {name: 'App',mounted() {this.exportData();},methods: {exportData() {// 获取表格数据const tableData = this.$refs.table.tableData;// 将数据转换为JSON格式const data = tableData.map(item => {return Object.keys(item).reduce((result, key) => {result[key] = item[key];return result;}, {});});// 创建工作簿和工作表const workbook = XLSX.utils.book_new();const worksheet = XLSX.utils.json_to_sheet(data);// 将工作表添加到工作簿中XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');// 将工作簿转换为二进制数据const excelData = XLSX.write(workbook, { type: 'buffer', bookType: 'xlsx' });// 创建一个隐藏的a标签,用于下载excel文件const a = document.createElement('a');a.href = excelData;a.download = 'data.xlsx';document.body.appendChild(a);a.click();document.body.removeChild(a);}}}
以上代码将获取表格数据并将其转换为JSON格式,然后使用xlsx库将其转换为Excel工作簿和工作表。最后,将工作簿转换为二进制数据,并创建一个隐藏的a标签来下载Excel文件。