前端经常需要吧表格的信息下载成xls文档,下载方法的封装直接看code
import FileSaver from 'file-saver';
import XLSX from 'xlsx';
interface downLoadType {
title: string //表头
headerRow: string[], //table的表头
bodyRows: [string[]] //对应的每一行
}
export const onDownloadXlsx = (data: downLoadType) => {
const { title = '', headerRow = [], bodyRows = [] } = data;
const table = [
[title],
[], // 空行
headerRow,
...bodyRows
];
const workbook = XLSX.utils.book_new();
const ws = XLSX.utils.aoa_to_sheet(table);
XLSX.utils.book_append_sheet(workbook, ws, 'Sheet_1');
const opts = { bookType: 'xlsx', bookSST: false, type: 'array' };
const wbout = XLSX.write(workbook, opts as any);
FileSaver.saveAs(new Blob([wbout], { type: "application/octet-stream" }), `${title}.xlsx`);
};