vue3纯前端导出excel文件

1.npm 集成 xlsx-js-style 库

npm i -s xlsx-js-style

2.引入和编写方法文件

import XLSX from 'xlsx-js-style';
/**
 *
 * @param {String} fineName 导出后下载的文件名称 (不需要带后缀)
 * @param {Array} data 导出excel的数据 例如:[['姓名','年龄'],['小明','19']] 下标0的数组为表头
 * @param {Array} colWidthList 列宽 例如[150,30] 下标对应第一列 第二列
 */
export function exportExcel(fineName, data, colWidthList = []) {
    const wb = XLSX.utils.book_new();
    const ws = XLSX.utils.json_to_sheet(data, {
        skipHeader: true,
    });

    // 获取所有当前数据的所有单元格 并设置样式
    //单元格样式 :文字居中等。
    const alignment = {
        horizontal: 'center',
        vertical: 'center',
    };
    // 固定 的话是第一行第一列
    // ws['A1'].s = {
    //     alignment,
    // };
    // 动态获取所有的单元格
    Object.keys(ws).forEach((key) => {
        if (key.indexOf('!') === -1) {
            ws[key].s = {
                alignment,
            };
        }
    });

    //设置列宽 下标0 为第一列 设置
    let widthArr = [];
    colWidthList.forEach((item) => {
        widthArr.push({ wpx: item });
    });
    ws['!cols'] = widthArr;
    // 只设置第一列 宽度
    // ws['!cols'] = [
    //     {
    //         wpx: 150,
    //     },
    // ];

    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
    XLSX.writeFile(wb, fineName + '.xlsx');
}

3.在导出按钮的文件引入并传入参数

 <el-button @click="exportFile" 
            :icon="Download"
            type="primary">
                导出
</el-button>
import { exportExcel } from '@/utils/excelConfig.js';

const exportFile = () => {
    const exc_data = [
        ['断面名称','一月','二月','三月'],
        ['断面A','20','30','40'],
    ];
    exportExcel('水质月历', exc_data, [300]);
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值