import * as Excel from 'exceljs/dist/exceljs.min.js'
import * as FileSaver from 'file-saver'
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'
export async function createTable (header, values, downloadName) {
var workbook = new Excel.Workbook()
workbook.created = new Date()
workbook.modified = new Date()
var sheet = workbook.addWorksheet('sheet1')
// 按開始行,開始列,結束行,結束列合併(相當於 K10:M12)
// worksheet.mergeCells(10,11,12,13);
sheet.mergeCells(`A1:${getCode(values[0].length)}1`)
sheet.getCell('A1').value = header
sheet.getCell('A1').alignment = { vertical: 'middle', horizontal: 'center' }
values.forEach(element => {
sheet.addRow(element)
})
workbook.xlsx.writeBuffer().then((data) => {
const blob = new Blob([data], { type: EXCEL_TYPE })
FileSaver.saveAs(blob, downloadName + '.xlsx')
})
}
function getCode (number) {
let code = ''
if (number < 26) {
code = String.fromCharCode(number + 64)
} else {
code = String.fromCharCode(number / 26 + 64) + String.fromCharCode(number % 26 + 64)
}
return code
}
github:https://github.com/exceljs/exceljs/blob/master/README_zh.md