安装xlsx
yarn add xlsx
封装代码
<template>
<el-button style="float: right; padding: 3px 5px" type="primary" @click="exportData">一键导出数据</el-button>
</template>
<script setup lang="ts">
import * as XLSX from 'xlsx'
const props = defineProps({
//传入的数据
data: {
type: Array,
required: true
},
//传入的表格名字
title: {
type: String,
required: true
}
})
const exportData = (): void => {
//1.创建一个excel工作簿
let excelBook = XLSX.utils.book_new()
//2.创建一个excel工作表
let excelWorkSheet = XLSX.utils.json_to_sheet(props.data)
//3.将excel工作表添加到excel工作簿中
XLSX.utils.book_append_sheet(excelBook, excelWorkSheet)
//4.下载excel文件
XLSX.writeFile(excelBook, props.title + '.xlsx', {
bookType: 'xlsx',
})
}
</script>
注册全局组件
main.js
import ExportTable from "@/components/ExportTable.vue";
app.component("ExportTable", ExportTable); //全局注册组件
使用
<!-- 导出用户表 -->
<ExportTable :data="tableData" title="导出用户表" />