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 文件,并触发文件下载到用户的设备上。