vue 前端excel表格导入和导出,Element + xlsx 组件
前端需要导入表格进行数据匹配,并进行表格导出,感谢很多大佬的文章分享,有不对的地方欢迎大家指正。
Element + xlsx
安装命令 npm install xlsx
页面引入 import XLSX from 'xlsx'
一、excel表格导入到表格
工具 导入数据 {{formName}} import XLSX from 'xlsx' export default { data(){ return { // 表格 fileList:[], tableData: [], dataName:[],//表格header formName:'',//导入的表格名 } }, created(){ }, methods:{ // 导入表格数据 handleChange(file) { const _this = this _this.tableData = [] _this.fileName = file.name; _this.formName = file.name; const reader = new FileReader(); //提取excel中文件内容 reader.readAsArrayBuffer(file.raw); reader.onload = function () { const buffer = reader.result; const bytes = new Uint8Array(buffer); const length = bytes.byteLength; let binary = ""; for (let i = 0; i { _this.tableData.push(i); }); _this.dataName = Object.keys(_this.tableData[0]);//获取抬头 }; }, }
二、表格数据导出成excel
此处参考Vue中如何进行数据导出与Excel导出?_vue导出excel文件-CSDN博客;
中间一定更要记得引xlsx;
这边的数据是固定的,如果想改成动态的,可以自己写循环替代map方法;
导出数据 import XLSX from 'xlsx' export default { data() { return { tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 20, gender: '女' }, { name: '王五', age: 22, gender: '男' } ] } }, methods: { exportData() { const XLSX = require("xlsx"); const headers = ['姓名', '年龄', '性别'] const data = this.tableData.map(item => [item.name, item.age, item.gender]) const worksheet = XLSX.utils.aoa_to_sheet([headers, ...data]) const workbook = XLSX.utils.book_new() XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') XLSX.writeFile(workbook, 'data.xlsx') } } }
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!