当前位置: 首页 > article >正文

VUE excel表格导出

js代码

    //下载模板

    downloadExl() {

     // 标题

      const tHeader = [‘xxx’,'xxx','xx名称','电枪xx','协议xx','snxx'];

      // key

      const filterVal = ['agentName', 'stationName', 'equName', 'channelNumber', 'manufacturer', 'sn', ];

        // 值

      const datas = [

        {

          agentName:   '你好',

          stationName:   '我们',

          equName:       '朋友',

          channelNumber: '一起',

          manufacturer:  '是的',

          sn:           '123456',

        },

      ];

       // 整合

      const json=datas.map(v => filterVal.map(j => v[j]));

      // 导出

      export_json_to_excel(json,'导出名称.xlsx'),tHeader,'导出名称');

    },

excel js代码

import XLSX from "xlsx";

/**

 * 导出excel

 * json 服务端发过来的数据

 * name 导出Excel文件名字

 * titleArr 导出Excel表头

 * sheetName 导出sheetName名字

 */

export function export_json_to_excel(json,name,titleArr,sheetName) {

    /* convert state to workbook */

    var data = new Array();

    var keyArray = new Array();

    const getLength = function (obj) {

        var count = 0;

        for (var i in obj) {

        if (obj.hasOwnProperty(i)) {

            count++;

            }

        }

        return count;

    };

    for (const key1 in json) {

        if (json.hasOwnProperty(key1)) {

            const element = json[key1];

            var rowDataArray = new Array();

            for (const key2 in element) {

                if (element.hasOwnProperty(key2)) {

                    const element2 = element[key2];

                    rowDataArray.push(element2);

                    // if (keyArray.length < getLength(element)) {

                    //     keyArray.push(key2);

                    // }

                }

            }

            if(null!=rowDataArray && rowDataArray.length>0){

                console.log('rowDataArray=', rowDataArray);

                data.push(rowDataArray);

                console.log('data=', data);

            }

        }

    }

    data.splice(0, 0,titleArr);

    console.log('data', data);

    const ws = XLSX.utils.aoa_to_sheet(data);

    const wb = XLSX.utils.book_new();

    // 此处隐藏英文字段表头

    var wsrows = [{ hidden: false }];

    ws['!rows'] = wsrows; // ws - worksheet

    XLSX.utils.book_append_sheet(wb, ws, sheetName);

    /* generate file and send to client */

    // XLSX.writeFile(wb, name + '.xlsx');

    XLSX.writeFile(wb, name);

}

显示效果


http://www.kler.cn/a/144881.html

相关文章:

  • 精通Nginx(17)-安全管控之防暴露、限制访问、防DDos攻击、防爬虫、防非法引用
  • Nodejs 第二十章(fs 上)
  • Java多线程——原子操作(原子操作的基本概念、常见实现类的特点、相关关键字的区别等)-面试题+答案——第11期
  • 【LeeCode】26.删除有序数组中的重复项
  • 【UE5】资源(Asset)
  • elk 简单操作手册
  • Android 13.0 Launcher3 app列表页桌面图标按安装时间排序
  • hdlbits系列verilog解答(exams/m2014_q4i)-45
  • 外贸自建站服务器怎么选?网站搭建的工具?
  • 单调栈 模板
  • C语言之指针知识点总结
  • VCenter6.7 Web访问提示503 Service Unavailable
  • Linux加强篇006-存储结构与管理硬盘
  • leetcode每日一题33
  • yolov5利用yaml文件生成模型
  • Python武器库开发-前端篇之CSS元素(三十二)
  • 佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅
  • Docker Remote API 使用详解
  • 【MySQL】数据库基础操作
  • 无人机电力巡检系统运行流程全解读