var aoa =[['姓名','性别','年龄','注册时间'],['张三','男',18,newDate()],['李四','女',22,newDate()]];var sheet =XLSX.utils.aoa_to_sheet(aoa);openDownloadDialog(sheet2blob(sheet),'导出.xlsx');
可以格式化aoa和sheet
functiondataToAoa(list){var hashHeadToChinese ={
name:'姓名',
mobile:'手机',
goods_name:'所报项目',
admin_realname:'学习顾问',
success_time:'成交时间'}let aoa =[],
header =[]
Object.keys(hashHeadToChinese).forEach((key)=>{
header.push(hashHeadToChinese[key])if(key ==='goods_name'){
header.push(null,null,null)}elseif(key ==='admin_realname'|| key ==='success_time'){
header.push(null,null)}elseif(key ==='mobile'){
header.push(null)}})
aoa.push(header)
list.forEach(item =>{let line =[];
Object.keys(hashHeadToChinese).forEach(key =>{
line.push(item[key])if(key ==='goods_name'){
line.push(null,null,null)}elseif(key ==='admin_realname'|| key ==='success_time'){
line.push(null,null)}elseif(key ==='mobile'){
line.push(null)}})
aoa.push(line)})return aoa
}$('.getsheet').on('click',()=>{let excelName ='表格'if(userList && userList.length !==0){let aoa =dataToAoa(userList)var tableName = window.prompt('请输入你要导出的表格的名字,例如: 表格')var sheet =XLSX.utils.aoa_to_sheet(aoa);let merges =[];for(let i =0; i < aoa.length; i++){
merges.push({
s:{// 合并第i行的第1个到第2个单元格为一个格
r: i,
c:1},
e:{
r: i,
c:2}},{
s:{// 合并第i行的第3个到第6个单元格为一个格
r: i,
c:3},
e:{
r: i,
c:6}},{
s:{
r: i,
c:7},
e:{
r: i,
c:9}},{
s:{
r: i,
c:10},
e:{
r: i,
c:13}})}
sheet['!merges']= merges;
console.log(merges);openDownloadDialog(sheet2blob(sheet),`${tableName}.xlsx`);}else{alert('数据异常,生成excel失败')}})