Files
fe-manage/src/utils/commonExcel.js
2023-02-14 01:20:18 +08:00

42 lines
1.4 KiB
JavaScript

import Exceljs from 'exceljs'
export const commonExport = (headers, datas, fileName) => {
const workbook = new Exceljs.Workbook()
workbook.created = new Date();
const sheet = workbook.addWorksheet("Sheet1", { views: [{ ySplit: 1, state: 'frozen' }] })
sheet.columns = headers
sheet.addRows(datas)
sheet.eachRow({ includeEmpty: true }, (row, rowNumber) => {
console.log('rowNumber', rowNumber)
row.eachCell({ includeEmpty: true }, (cell, colNumber) => {
console.log('colNumber', colNumber)
cell.alignment = { vertical: 'middle', horizontal: 'center' }
cell.border = {
top: { style: 'thin' },
left: { style: 'thin' },
bottom: { style: 'thin' },
right: { style: 'thin' }
}
})
})
downExcel(workbook, fileName)
}
export const downExcel = (wb, fileName) => {
wb.xlsx.writeBuffer().then(buffer => {
let blob = new Blob([buffer], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
let ele = document.createElement('a')
ele.style.display = 'none'
ele.href = URL.createObjectURL(blob)
ele.download = fileName
document.body.appendChild(ele)
ele.click()
document.body.removeChild(ele)
URL.revokeObjectURL(ele.href)
wb = null
})
}