• Vue中使用js-xlsx导出Data数据到Excel


    需要引入的第三方JS有:export.js、xlsx.extendscript.js、xlsx.full.min.js
    JS太大不贴出来,放一个可下载百度云连接:https://pan.baidu.com/s/1jmu9UktuEZVnZ5B0ZWOb8w 提取码:pn6x 
     
    拜读两位大佬的文章:
     
    HTML部分:
     <button type="button" class="bt_css_s" @click="btn_export">导出</button>
    JS部分:
      btn_export: function () {
                    var that = this;
                    //要导出去的标题
                    var arry = [['项目进度ID', '项目详情ID', '项目名称', '计划进度', '开始时间', '结束时间', '本年投资计划完成', '进度描述', '进度差异原因']];         
                    // that.Data指要导出的数据
                    that.Data.map(a => {
                        var _arry = [];
                        _arry.push(a.ID.toString());
                        _arry.push(a.JHPID.toString());
                        _arry.push(a.NAME.toString());
                        _arry.push(a.JHJD.toString());
                        _arry.push(a.KSSJ == null ? "" : a.KSSJ.format('yyyy-MM-dd'));  //格式化日期没有就返回空
                        _arry.push(a.JSSJ == null ? "" : a.KSSJ.format('yyyy-MM-dd'));  //格式化日期没有就返回空
                        _arry.push(a.BNWC.toString());
                        _arry.push(a.JDMS.toString());
                        _arry.push(a.CYYY.toString());
                        return _arry;
                    }).forEach(a => {
                        arry.push(a);
                    });
                    var sheet = XLSX2.utils.aoa_to_sheet(arry);
                    //循环单元格设置样式
                    var s = sheet['!ref'];
                    sheet["A2"].s = {
                        font: {
                            name: '宋体',
                            sz: 18,
                            color: { rgb: "#FFFF0000" },
                            bold: true,
                            italic: false,
                            underline: false
                        },
                        alignment: {
                            horizontal: "center",
                            vertical: "center"
                        }
                    };
                    var rows = s.substr(s.length - 1, 1);
                    var cloums = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
                    for (var j = 0; j < cloums.length; j++) {
                        for (var i = 1; i <= rows; i++) {
                            if (i == 1) {
                                sheet[cloums[j] + i].s = { //样式  
                                    font: {
                                        bold: true,
                                        italic: false,
                                        underline: false
                                    },
                                    alignment: {
                                        horizontal: "left",
                                        vertical: "left",
                                        wrap_text: false
                                    }
                                };
                            }
                            else {
                                sheet[cloums[j] + i].s = { //样式  
                                    alignment: {
                                        horizontal: "left",
                                        vertical: "left",
                                        wrap_text: false
                                    }
                                };
                            }
                        }
                    }
                    sheet["!cols"] = [{
                        wpx: 90
                    }, {
                        wpx: 90
                    }, {
                        wpx: 90
                    }, {
                        wpx: 90
                    }, {
                        wpx: 150
                    }, {
                        wpx: 150
                    }, {
                        wpx: 180
                    }, {
                        wpx: 150
                    }, {
                        wpx: 150
                    }, {
                        wpx: 150
                    }, {
                        wpx: 70
                    }, {
                        wpx: 150
                    }, {
                        wpx: 120
                    }]; //单元格列宽   
                    openDownloadDialog(sheet2blob(sheet), that.format(new Date()) + '进度导出管理.xlsx');
                }
  • 相关阅读:
    rt_list_entry() 函数
    替换空格
    跳台阶
    斐波那契数列
    基于5221码的同步十进制加法计数器
    强连通分量+Tarjia+缩点
    次小生成树
    差分约束
    P1547 Out of Hay
    P1197 [JSOI2008]星球大战
  • 原文地址:https://www.cnblogs.com/wofeiliangren/p/11654586.html
Copyright © 2020-2023  润新知