导出功能代码示例

2 阅读1分钟
const headers = [
t("TARGET_NUMBER"),
t("DRONE_MODEL"),
t("SERIAL_NUMBER"),
t("REMARK"),
t("DISCOVERY_TIME"),
t("DISAPPEARTIME"),
t("THREAT_LEVEL"),
]

if (res.data && ces.data.length > 0) {
const exportData = res.data.map((item)=>({
[headers[0]]:item.id,
header[1]:item.model||"",
header[2]:item.model||"",
header[3]:item.model||"",
header[4]:item.model||"",
header[5]:item.model||"",
header[6]:item.model||"",
}));
// 创建工作表
const ws = XLSX.utils.json_to_sheet(exportData);
// 更合理的列宽计算
const colWidths = headers.map((header, index) = {
// 获取该列的所有数据
const columnData = exportData.map((item)  String(0bject.values(item)[index] || ""));
// 计算最大宽度
Let maxWidth =heoder.length; // 至少要能容纳表头
columnData.forEach((value)  {
//对于特别长的文本,适当折算宽度
const effectiveLength = volue.Length > 50 ? Math.ceil(volue.Length / 3) :volue.length;maxWidth = Math.max(maxWidth, effectiveLength);
});
// 设置合理的宽度范围(最小15,最大100)
return { wch: Math.max(15, Math.min(100, maxWidth + 2)) };
})
ws["!cols"] = colWidths;
// 创建工作簿并导出
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, t("TRACK_RECORD"));
XLSx.writeFile(wb, '${t("HISToRY")}_${dayjs().format("YYYYMMDD_HHmmss")}.xlsx');
}else {
message.warning();
}
})