element的table中的数据导出成Excel文件

个人blog,欢迎关注加收藏
1.安装插件
a.npm install xlsx:Excel文件插件
b.npm install file-saver –save:将element的table数据导出的插件
2、组件里头引入

import FileSaver from 'file-saver'
import XLSX from 'xlsx'

3、组件methods里写一个方法

 exportExcel () {
     var wb = XLSX.utils.table_to_book(document.querySelector('#out-table'))
     var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
     try {
         FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx')
     } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
     return wbout
 },

注意:XLSX.uitls.table_to_book( 放入的是table 的DOM 节点 ) ,sheetjs.xlsx 即为导出表格的名字,可修改!

4、点击导出按钮执行 exportExcel 的方法即可 。
组件里头代码截图:

要将Vue项目Element UI的Table组件导出Excel文件,可以按照以下步骤进行操作: 1. 首先,确保你的Vue项目已经安装了Element UI和xlsx插件。如果还没有安装,可以使用以下命令进行安装: ``` npm install element-ui xlsx ``` 2. 在需要导出Table组件的Vue组件,导入所需的模块和样式: ```javascript import XLSX from 'xlsx'; import 'xlsx/dist/xlsx.css'; import { Table } from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; ``` 3. 在模板使用Element UI的Table组件,并绑定数据: ```html <template> <div> <el-table :data="tableData" ref="table"> <!-- 表格内容 --> </el-table> <el-button type="primary" @click="exportTable">导出表格</el-button> </div> </template> ``` 4. 在Vue组件的`exportTable`方法,使用XLSX库将Table组件的数据导出Excel文件: ```javascript export default { data() { return { tableData: [ // 表格数据 ], }; }, methods: { exportTable() { const tableData = this.$refs.table.store.states.data; // 获取Table组件数据 const worksheet = XLSX.utils.json_to_sheet(tableData); // 将数据转换为worksheet对象 const workbook = XLSX.utils.book_new(); // 创建工作簿对象 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 将worksheet添加到工作簿 const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' }); // 将工作簿转换为二进制数据 function s2ab(s) { // 字符串转ArrayBuffer const buf = new ArrayBuffer(s.length); const view = new Uint8Array(buf); for (let i = 0; i < s.length; i++) { view[i] = s.charCodeAt(i) & 0xff; } return buf; } const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' }); // 创建Blob对象 const downloadLink = document.createElement('a'); // 创建下载链接 downloadLink.href = URL.createObjectURL(blob); downloadLink.download = 'table.xlsx'; // 下载文件名 document.body.appendChild(downloadLink); // 添加下载链接到页面 downloadLink.click(); // 模拟点击下载 setTimeout(() => { document.body.removeChild(downloadLink); // 下载完后移除下载链接 URL.revokeObjectURL(downloadLink.href); // 释放URL对象 }, 200); }, }, }; ``` 在这个示例,`exportTable`方法使用`$refs`来获取Table组件的数据,并使用XLSX库将数据转换为Excel文件。然后,创建一个下载链接并模拟点击下载。最后,移除下载链接和释放URL对象。 请注意,上述示例的`tableData`和`s2ab`函数需要根据你的实际情况进行调整。`tableData`应该是你要导出Table组件的数据,而`s2ab`函数是一个将字符串转换ArrayBuffer的辅助函数。 使用以上步骤,你就可以将Element UI的Table组件导出Excel文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值