【优化】封装Excel文件导出功能


【优化】封装Excel文件导出功能

封装Excel文件导出功能,之前发的文件名是固定的,这次添加了自定义文件名功能,可自己填写文件名

效果图

【优化】封装Excel文件导出功能

<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'
import { ElMessage, ElMessageBox } from 'element-plus'

const props = defineProps({
    data: {
        type: Array,
        required: true
    },
})
const exportData = (): void => {
    ElMessageBox.prompt('输入一个Excel表名用于导出数据表', '导出数据表', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        inputErrorMessage: 'Invalid Email',
    })
        .then(({ value }) => {
            //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, value + '.xlsx', {
                bookType: 'xlsx',
            })
        })
        .catch(() => {
            ElMessage({
                type: 'info',
                message: '你已取消导出数据表',
            })
        })
}
</script>


扫描二维码,在手机上阅读

推荐阅读:

滑动验证插件使用

WebSocket使用方法

评 论