excelJS 簡易導出

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章