用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>
layui.config({
base: '/js/layui/layui_exts/'
}).use(['excel', 'layer'], function () {
var $ = layui.$;
var layer = layui.layer;
var excel = layui.excel;
$('#exportExcel').on('click', function () {
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;
data = excel.filterExportData(data, {
car_no: 'car_no',
under_write_date: function (value, line, data) {
return FomdateTime(value, 'YY-MM-DD')
},
company: function (value, line, 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',
});
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');
});
});
- 导出后样式