35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
//导入依赖项
|
|
import FileSaver from 'file-saver';
|
|
import * as XLSX from "xlsx";
|
|
|
|
/**
|
|
* elemet-ui el-table数据导出为xlsx表格
|
|
* @param {*} _targetId Element-UI el-table组件的id值
|
|
*/
|
|
export const exportTableAsXLSX = function (tableArray: any[], header: any, name: string) {
|
|
//根据table生成Book工作簿
|
|
// let wb = XLSX.utils.table_to_book(document.getElementById('_targetId'));
|
|
|
|
let wb = XLSX.utils.book_new()
|
|
let ws: any = XLSX.utils.json_to_sheet(tableArray, {header: header})
|
|
wb.SheetNames.push('sheet1');
|
|
wb.Sheets['sheet1'] = ws;
|
|
//将Book工作簿作为输出
|
|
let wbout = XLSX.write(wb, {
|
|
bookType: "xlsx",
|
|
bookSST: true,
|
|
type: "array"
|
|
});
|
|
//尝试将当前table内容保存为excel文件
|
|
try {
|
|
FileSaver.saveAs(
|
|
//被导出的blob二进制对象
|
|
new Blob([wbout], {type: "application/octet-stream"}),
|
|
//导出文件的名称+后缀名
|
|
name + ".xlsx"
|
|
);
|
|
} catch (e) {
|
|
if (typeof console !== "undefined") console.log(e, wbout);
|
|
}
|
|
}
|