zoukankan      html  css  js  c++  java
  • Vue 实战-5 批量导出 excel功能

    需求,需要一键导出,但是这个有点low,即不能自定义,即我只想导出我想要的数据而不是全部怎么办?
     
     
    先总结如下:
        1.需要安装依赖:file-saver  xlsx  script-loader
            命令:cnpm/ npm install  -S  file-saver
                        cnpm/npm install  -S  xlsx
                        cnpm/npm install  -D  script-loader
     
        2.需要导入两个js文件,前提在src目录下新建一个文件夹Excel(可以随意,但是推荐是这个便于管理)
            Blob.js 和 Export2Excel.js 把这两个js文件放入Excel文件夹中;
            
        3.在main.js中引入
            import  Blob  from  './Excel/Blob.js'
            import  Export2Excel  from  './Excel/Export2Excel.js'
     
        4.组件中使用
            第一:写一个button绑定点击事件ExportToExcel
     
            第二:写一绑定好的方法
            代码:
                ExportToExcel () {  
                    // let wb = XLSX.utils.table_to_book(document.querySelector('#table_data'));   // 这里就是表格   
                    // let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });   
                    // try {   
                    //   FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'test.xlsx');  //test是自己导出文件时的命名,随意   
                    // } catch (e)   
                    // {  
                    //   if (typeof console !== 'undefined')   
                    //     console.log(e, wbout)   
                    // }   
                    // return wbout   
                    上面注释的代码可以实现导出当前页面所有数据,但是没办法满足需求,故有下面的代码:
                    require.ensure([], () => {     
                        const { export_json_to_excel } = require('../Excel/Export2Excel');//注意这个Export2Excel路径     
                        const tHeader = ['域名', '负责人', '集群', '是否分享域名'];   // 上面设置Excel的表格第一行的标题     
                        const filterVal = ['uniq_domain', 'owner', 'cluster', 'is_share']; // 上面的index、nickName、name是tableData里对象的属性key值     
                        const list = this.multipleSelection;  //把要导出的数据tableData存到list     
                        const data = this.formatJson(filterVal, list);     
                        export_json_to_excel(tHeader, data, 'test_guos');//最后一个是表名字   
                    }) 
                }, 
                formatJson(filterVal, jsonData) {    // 这个是上一个方法需要调用的
                    return jsonData.map(v => filterVal.map(j => v[j])) 
                },
     
     
     
     
     
  • 相关阅读:
    知识工程及语义网技术 2020-03-19 (第一节)-构建本体
    知识工程及语义网技术 2020-03-12 (第二节)-构建本体
    知识工程及语义网技术 2020-03-12 (第二节)、RDF(S)、OWL
    知识工程及语义网技术(一)-XML、RDF(S)、OWL-2020.3.5第一节
    知识工程及语义网技术(一)-知识工程,万维网、语义网、本体工程 2020-02-20 (第一节)
    本体
    语义网技术及其应用(四)-欧石燕
    一文深度揭秘3GPP:2G/3G/4G/Pre-5G标准化制定流程是这样的
    3GPP更新5G标准时间表
    一张图了解3GPP
  • 原文地址:https://www.cnblogs.com/guo-s/p/14215668.html
Copyright © 2011-2022 走看看