vue3 element plus表格导出为excel自定义表头

新建一个out_excel.js文件并调用

import * as XLSX from "xlsx";

export const exportToExcel = (tableData, tableName, sheetName, fileName) => {
  const ws = XLSX.utils.aoa_to_sheet([...[tableName], ...tableData]); // tableName为表头,tableData为数据
  const wb = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(wb, ws, sheetName); // sheetName为自定义的sheet表名
  XLSX.writeFile(wb, fileName + ".xlsx"); // fileName为自定义的文件名
};

下面是vue中调用

// 导出按钮事件
<el-button type="primary" @click="outExcel">导出</el-button>

// 引入导出excel文件
import { exportToExcel } from "@/utils/out_excel.js"; // 导出表格

// 表格数据
const tableData = reactive({
  arr: [
    {
      area: "比基尼海滩",
      group: "蟹黄堡",
      name: "海绵宝宝",
      number: "8",
      numberAll: "16.0",
      time: "2020/04/18 21:52",
    },
    {
      area: "比基尼海滩",
      group: "蟹黄堡",
      name: "章鱼哥",
      number: "8",
      numberAll: "16.0",
      time: "2020/04/18 21:52",
    }
  ],
});

// 调用事件bigArr为传入的数据,headArr为传入的表头
const outExcel = () => {
  let smallArr = Array.from(tableData.arr)
  let bigArr = []
  smallArr = smallArr.map((item) => {
    bigArr.push(Object.values(item))
  })
  let headArr = ['区域', '公司', '名称', '年龄', '收入', '时间']
  exportToExcel(bigArr, headArr, 'sheet1', '比基尼海滩统计');
}

此时bigArr的数据的结构为

[
    ['比基尼海滩', '蟹黄堡', '海绵宝宝', '8', '16.0', '2020/04/18 21:52'],['比基尼海滩', '蟹黄堡', '章鱼哥', '8', '16.0', '2020/04/18 21:52']
]

最后导出的excel文件长这样

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值