import * as XLSX from 'xlsx';
// 下载excel 数据
const onDownload = () => {
const updatedData = rearrangeData(data, headers);
const fileName = '文件名称.xlsx';
const worksheet = XLSX.utils.json_to_sheet(updatedData);
const newHeaders = headers.map((item) => item.title);
XLSX.utils.sheet_add_aoa(worksheet, [newHeaders], { origin: 'A1' });
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, fileName);
XLSX.writeFile(workbook, fileName || 'table_data.xlsx');
};
// 重新按照headers的顺序排列数据
const rearrangeData = (data, headers) => {
return data.map((item) => {
const newItem = {};
headers.forEach(({ colKey }) => {
// 将 null 替换为 999999
newItem[colKey] = item[colKey] !== null ? item[colKey] : 999999;
if (colKey === 'name') {
newItem[colKey] = '新值';
}
});
return newItem;
});
};
通过data和header下载excel表格
最新推荐文章于 2025-04-14 22:26:17 发布