vue项目以excel表格的形式下载table数据
1,安装插件
npm install --save xlsx@0.17.3
npm install --save file-saver@2.0.5
2,创建js文件编写代码
1 import FileSaver from 'file-saver'; 2 3 import * as XLSX from 'xlsx'; 4 5 // 导出Excel表格 6 7 export function exportExcel(name, tableName) { //name表示生成excel的文件名 tableName表示表格的id 8 let sel = XLSX.utils.table_to_book(document.querySelector(tableName)) 9 let selIn = XLSX.write(sel, { bookType: 'xlsx', bookSST: true, type: 'array' }) 10 try { 11 FileSaver.saveAs( 12 new Blob([selIn], 13 { type: 'application/octet-stream' }), 14 name 15 ) 16 } catch (e) { 17 if (typeof console !== 'undefined') 18 console.log(e, selIn) 19 } 20 return selIn 21 }
22 原理:
首先,使用id选择器获取到table表格,
然后,使用
XLSX.utils.table_to_book()
方法将这个表格 DOM 元素转换为一个 workbook 对象,table_to_book()
方法会将表格中的每个单元格的数据提取出来,并按照 Excel 的格式转换成一个 workbook
对象。 最后,利用
XLSX.write()
方法将 workbook 对象导出一个名为‘汇总成绩报告’的Excel文件,这一步会将 workbook
对象转换为二进制的 Excel 文件,并触发文件下载到用户的设备上。3,在组件里面引用
1 exportExcel("汇总成绩报告.xlsx", "#tableData");