Lay ui导出数据到Excel

用layui 自带的到处数据到excel比较坑,不能自定义数据。会将身份证等 长整数的 自动变成E+并且 后面有000.从而导致数据不能完整导出。后来在官网找到个插件可以设置每一行的返回值,这样就完美解决了没法处理后台返回的而数据的问题

插件文档及下载地址
文件结构

  • 代码如下
 <button type="button" lay-submit="" class="layui-btn layui-btn-warm" id="exportExcel"name="exportExcel">
       <i class="layui-icon"></i>导出Excel
 </button>
 
 //js
layui.config({//配置并导入excel插件
        base: '/js/layui/layui_exts/'
    }).use(['excel', 'layer'], function () {
        var $ = layui.$;
        var layer = layui.layer;
        var excel = layui.excel;
        $('#exportExcel').on('click', function () {
			      // list 数据样式 {[Insured_name: ""
			LAY_TABLE_INDEX: 0
			acct_name: ""
			auth_status: "init"
			auther: "张经理"
			bank_code: ""
			brand: ""
			car_no: "京AW4666"
			car_owner_idno: ""
			card_no: ""
			channel: "dx"
			company: "pa"
			ctime: 1604720169000
			discount: 3.33
			discount_amt: 100
			edate: 1636128000000
			engine: "4864864"
			insure_idno: ""
			insure_name: "SS"
			insured_idno: ""
			issu_acct_no: "kf1"
			issu_time: 1604592000000
			jy_amt: 800
			kind: "sxxb"
			phone1: "18790250190"
			phone2: ""
			policy: "11788899955544411125"
			premium: 3000
			rate: 30
			recrod_status: "unused"
			reg_date: 1541001600000
			sdate: 1604678400000
			turn_renew: "renew"
			tzid: "TZID2020110700000769"
			under_write_date: 1604678400000
			user_id: "CMU20201012000000109"
			user_name: "开发"
			vin: "GYUAGYWDGWAGD"],....}
      
                    var data = list.list;
            //         console.log(res);
           //   data = excel.filterExportData(data, ['id', 'sex', 'username', 'city]) 可以写成数组方式 仅用于排序、字段过滤,比如我希望的导出顺序和字段是'id', 'sex', 'username', 'city

            //还有下面这种对象格式的推荐:可以定义当前单元格的值
                    data = excel.filterExportData(data, {
                        car_no: 'car_no',
                        under_write_date: function (value, line, data) {
                        //return 啥当前单元格就显示神马
                            return FomdateTime(value, 'YY-MM-DD')
                        },
                        company: function (value, line, data) {
                          //value 当前单元格的值
                         //data 但前要导出的所有数据 data 
                            if (value == 'pa') {
                                return "平安"
                            } else if (value == 'rb') {
                                return "人保"
                            } else if (value == 'tpy') {
                                return '太平洋'

                            }
                        },
                        insure_name: 'insure_name'
                        , policy: 'policy'
                        , kind: function (value, line, data) {
                            return getNameById(value, 'policy_kind')
                        }
                        , premium: 'premium'
                        , jy_amt: 'jy_amt'
                        , rate: 'rate'
                        , discount: 'discount'
                        , sdate: function (value, line, data) {
                            return FomdateTime(value, 'YY-MM-DD')
                        },
                        edate: function (value, line, data) {
                            return FomdateTime(value, 'YY-MM-DD')
                        }
                        , auth_status: function (value, line, data) {
                            return getNameById(value, 'auth_status')
                        },
                        auther: 'auther'
                        , user_name: 'user_name',

                    });
                    // 重点2!!!一般都需要加一个表头,表头的键名顺序需要与最终导出的数据一致
                    data.unshift({
                        car_no: "车牌号",
                        under_write_date: "承保日期",
                        company: '承保单位',
                        insure_name: "投保人",
                        policy: "保单号",
                        kind: '险种',
                        premium: "保费",
                        jy_amt: "结余金额",
                        rate: '费率%',
                        discount: "打折比例%",
                        sdate: "保险起期",
                        edate: "保险止期",
                        auth_status: "状态",
                        auther: "审核人",
                        user_name: "经办人",
                    });
                    var timestart = Date.now();
                    excel.exportExcel(data, '台账查询.xlsx', 'xlsx');
                    //data 数据列表
                    //第二个参数 文件名
                    //第三个 文件后缀名
        });
    });
  • 导出后样式
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值