31 lines
1.2 KiB
TypeScript
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)
|
|
}
|