導入
cnpm install --save xlsx
引入
import XLSX from 'xlsx';
使用
_headers為列頭數組 tblData為數據數組,每一個對象為一行數據
let _headers = ['日期', ...xAxisData];let headers = _headers.map((v, i) => Object.assign({}, { v: v, position: String.fromCharCode(65 + i) + 1 })).reduce((prev, next) => Object.assign({}, prev, {[next.position]: {v: next.v}}), {});console.log('headers', headers);let testttt = tblData.map((v, i) => _headers.map((k, j) => Object.assign({}, { v: v[k], position: String.fromCharCode(65 + j) + (i + 2) }))).reduce((prev, next) => prev.concat(next)).reduce((prev, next) => Object.assign({}, prev, {[next.position]: {v: next.v}}), {});console.log('testttt', testttt);let output = Object.assign({}, headers, testttt);console.log('output', output);// 獲取所有單元格的位置let outputPos = Object.keys(output);console.log('outputPos', outputPos);// 計算出范圍let ref = outputPos[0] + ':' + outputPos[outputPos.length - 1];console.log('ref', ref);// 構建 workbook 對象let wb = {SheetNames: ['mySheet'],Sheets: {'mySheet': Object.assign({}, output, { '!ref': ref })}};XLSX.writeFile(wb, 'output.xlsx');