xlsx.js导出Excel文件(数据结构为由数据组成的数组,避免使用由对象组成的数组,因为对象无序)

13 篇文章 0 订阅
10 篇文章 1 订阅

实现效果:
在这里插入图片描述
要求:

  1. 第一列是问题和选项
  2. 后面的每列是用户对每道题的选项结果,如果没选则值为空

导出Excel的示例代码:

import * as XLSX from 'xlsx'
import FileSaver from "file-saver";
// 导出excel
    const handleExcel = () => {
      ElMessage.success("正在导出,请稍等")
      getAnswerlistExcel({vote_id: vote_id}).then((res)=>{
        ElMessage.success("导出成功")
        let items = res.data.items
        let vote = res.data.voteData
        // 由对象组成的数组,这种数据结构使用 XLSX.utils.json_to_sheet()
        // let items= [
      //     { '题目': '题目1111', '用户A': 29, '用户B': 10 },
      //     { '题目': '题目222', '用户A': 25, '用户B': 88 },
      //     { '题目': '题目333', '用户A': 27, '用户B': 11 },
      //     { '题目': '题目444', '用户A': 33, '用户B': 14 }
      //   ]
	// 由数组组成的数组,这种数据结构使用XLSX.utils.aoa_to_sheet()
    //   let items =  [ ['姓名','性别','年龄','注册时间'], ['张三','男',18,11.00], ['李四','女',22,12.00]]
        const data = XLSX.utils.aoa_to_sheet(items)
        const wb = XLSX.utils.book_new()
        XLSX.utils.book_append_sheet(wb, data, vote.title)
        XLSX.writeFile(wb, "投票-" +vote.title + "-统计" + '.xlsx')
      }).catch((res)=>{
          ElMessage.success("导出失败,请联系管理员")
      })
    };
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值