尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

vue3-数据导出为excel文件

vue3-数据导出为excel文件 需求有一个变量数组列表和一些筛选条件需要导出为一个excel先把数组列表导出为一个子表import * as XLSX from xlsx const SUMMARY_COLUMNS [ { key: District, label: 区域 }, { key: sh_code, label: 店铺代码 }, { key: Shop, label: 店铺名称 }, ... ]//定义列对应的变量名和列名 const formatExportValue (val) { const num parseFloat(val) if (Number.isFinite(num)) { return Number(num.toFixed(0)) } return val ?? }//将数字类变量转化为整数 const arrayToSheet (data, columns) { const headers columns.map((col) col.label) const rows (data || []).map((row) columns.map((col) formatExportValue(row[col.key])) ) return XLSX.utils.aoa_to_sheet([headers, ...rows]) }//整理列名和列表内容 const exportReport () { const workbook XLSX.utils.book_new() const sheets [ { name: 总结, data: 数组列表变量, columns: SUMMARY_COLUMNS }, ... ]//定义子表name是子表名 sheets.forEach(({ name, data, columns }) { XLSX.utils.book_append_sheet(workbook, arrayToSheet(data, columns), name) }) const fileName 自定义excel文件名.xlsx XLSX.writeFile(workbook, fileName) }再加上一个筛选条件的子表const createFilterSheet () { const exportTime new Date().toLocaleString(zh-CN, { hour12: false }) const rows [ [起始时间, 变量], [结束时间, 变量], [导出时间, exportTime], ... ] return XLSX.utils.aoa_to_sheet([...rows]) }XLSX.utils.book_append_sheet(workbook, createFilterSheet(), 筛选条件)
返回列表