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");
          
posted @ 2023-09-27 12:09  程序员肉包子  阅读(201)  评论(0编辑  收藏  举报