Files
zkxw/web-admin/src/utils/sf-express-settlement-export.ts
T

31 lines
1.2 KiB
TypeScript

import ExcelJS from 'exceljs'
import FileSaver from 'file-saver'
const HEADERS = ['顺丰单号', '创建人', '创建时间', '结算状态', '运费', '结算时间']
export function buildSfExpressExportRows(list: Array<Record<string, string>>) {
return list.map((row) => [
row.waybillNo || '—',
row.createByName || '—',
row.createTime || '—',
row.settleStatusLabel || '—',
row.freightAmountLabel || '—',
row.settleTime || '—'
])
}
export async function saveSfExpressSettlementWorkbook(list: Array<Record<string, string>>) {
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)
}