vue项目以excel表格的形式下载table数据

发布时间 2023-09-27 12:13:53作者: 程序员肉包子

1,安装插件

      npm install --save xlsx@0.17.3

      npm install --save file-saver@2.0.5

2,创建js文件编写代码

      import FileSaver from 'file-saver';

      import * as XLSX from 'xlsx';

      // 导出Excel表格

      export function exportExcel(name, tableName) { //name表示生成excel的文件名  tableName表示表格的id    
          let sel = XLSX.utils.table_to_book(document.querySelector(tableName))    
          let selIn = XLSX.write(sel, { bookType: 'xlsx', bookSST: true, type: 'array' })    
          try {      
                 FileSaver.saveAs(
                 new Blob([selIn],
                     { type: 'application/octet-stream' }),
                     name
               )    
           } catch (e) {      
              if (typeof console !== 'undefined')
              console.log(e, selIn)    
           }    
           return selIn
       }
3,在组件里面引用
      exportExcel("汇总成绩报告.xlsx", "#tableData");
 
4,原理
          首先,使用id选择器获取到table表格,
          然后,使用 XLSX.utils.table_to_book() 方法将这个表格 DOM 元素转换为一个 workbook 对象,
        table_to_book() 方法会将表格中的每个单元格的数据提取出来,并按照 Excel 的格式转换成一个 workbook 对象。
     最后,利用 XLSX.write() 方法将 workbook 对象导出一个名为‘汇总成绩报告’的Excel文件,
                     这一步会将 workbook 对象转换为二进制的 Excel 文件,并触发文件下载到用户的设备上。