【vue3】表格导出简单使用方法

安装依赖

npm install xlsx

创建工具文件exportToExcel.ts

import * as XLSX from 'xlsx';

interface TableData {
  [key: string]: any;
}

type MappingFunction = (row: TableData) => { [key: string]: any };

export const exportToExcel = (
  data: TableData[],
  fileName: string,
  mappingFunction: MappingFunction,
  columnWidths: { [key: string]: number }
) => {
  const formattedData = data.map(mappingFunction);

  const worksheet = XLSX.utils.json_to_sheet(formattedData);

  // Set column widths
  const colWidths = Object.keys(columnWidths).map((key) => ({ wch: columnWidths[key] }));
  worksheet['!cols'] = colWidths;

  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

  XLSX.writeFile(workbook, `${fileName}.xlsx`);
};

页面使用

import { exportToExcel } from '/@/utils/exportToExcel';  //换成自己路径
const tableData = ref([
{
"user_type":1,
"created_at":"2024-07-20 17:57:48",
"user_type":"赋予用户:注册会员4ofmPbL 【1】积分"
}
])
const mapTableDataToExportFormat = (row: any) => ({
  交易类型: row.user_type == 1 ? '银行' : row.user_type == 2 ? '小程序用户' : '平台',
  发放时间: row.created_at,
  备注: row.remark,
});

const columnWidths = {
  交易类型: 10,
  发放时间: 20,
  备注: 50,
};

const handleExport = () => {
  exportToExcel(tableData.value, '积分记录', mapTableDataToExportFormat, columnWidths);
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡忘_cx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值