import ExcelJS from 'exceljs' import FileSaver from 'file-saver' const HEADERS = ['顺丰单号', '创建人', '创建时间', '结算状态', '运费', '结算时间'] export function buildSfExpressExportRows(list: Array>) { return list.map((row) => [ row.waybillNo || '—', row.createByName || '—', row.createTime || '—', row.settleStatusLabel || '—', row.freightAmountLabel || '—', row.settleTime || '—' ]) } export async function saveSfExpressSettlementWorkbook(list: Array>) { const workbook = new ExcelJS.Workbook() const sheet = workbook.addWorksheet('顺丰月结') sheet.addRow(HEADERS) buildSfExpressExportRows(list).forEach((line) => sheet.addRow(line)) const buffer = await workbook.xlsx.writeBuffer() const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) const stamp = new Date() const pad = (value: number) => String(value).padStart(2, '0') const name = `顺丰月结-${stamp.getFullYear()}${pad(stamp.getMonth() + 1)}${pad(stamp.getDate())}${pad(stamp.getHours())}${pad(stamp.getMinutes())}${pad(stamp.getSeconds())}.xlsx` FileSaver.saveAs(blob, name) }