需求:后端返回列表,前端生成xlsx文件并导出
1.安装node-xlsx
npm install node-xlsx
2.demo(js)
const xlsx = require('node-xlsx')
// worksheets 数组形式,数组每组数据代表一个sheet页面
// 其中name:sheet页名称,data:表格数据,二维数组,第一组数据表示表头
const worksheets = [
{
name: 'sheet1',
data: [['表头A', '表头B', '表头C', '表头D'], ['数据A', '数据B', '数据C', '数据D']]
},
{
name: 'sheet2',
data: [['表头A', '表头B', '表头C', '表头D'], ['数据A', '数据B', '数据C', '数据D']]
}
]
function buildXlsx (worksheets) {
return xlsx.build(worksheets) // return a buffer
}
function exportXlsx (result, fileName = 'test.xlsx') {
const ab = Buffer.from(result, 'binary')
const blob = new Blob([ab])
const blobUrl = URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = blobUrl
a.download = fileName
a.click()
window.URL.revokeObjectURL(blobUrl)
}
const result = buildXlsx(worksheets)
exportXlsx(result)