layui表格自定义导出数据(选中和全部数据)
layui表格自定义导出数据(选中和全部数据)
导出效果:
<table id="table_1" lay-filter="table_1"></table>//table表格初始化
table.render({elem: '#table_1',id: 'table1',url: '/xxx/list',where:{month:formattedTime,},page: true,method: 'get',cols: cols,skin: 'line',toolbar: '#role-toolbar',defaultToolbar: [{layEvent: 'refresh',icon: 'layui-icon-refresh',}, 'filter', 'print', 'exports'],parseData: function (res) {return {"code" : 0,"msg": "","count": res.count,"data":res.data,}},done:function(res,curr,count){if(res.code != 0){layer.msg("数据返回有误!")return false;}exportData = res.data;var selLength=res.count;//导出按钮初始化dropdown.render({elem: '#downMenu',align: "left",data: [{title: '导出选中',templet: '<div class="export-select">{{d.title}}</div>',id: 100}, {title: '导出所有',templet: '<div class="export-all">{{d.title}}</div>',id: 101}],ready: function () {//获取table实例var checkStatus = table.checkStatus('table1');$(".export-select").html("导出选中 (已选" + checkStatus.data.length + "条)");$(".export-all").html("导出所有 (共" + selLength + "条)");if (checkStatus.data.length == 0) {$(".export-select").addClass("export-selectNo");} else {$(".export-select").removeClass("export-selectNo");}},click: function (obj) {var param={};//导出全选参数//选中导出if (obj.id == 100) {var checkTab = table.checkStatus('table1');checkTebData = checkTab.data;table.exportFile('table1', checkTebData, 'xlsx', '我的xx' + getCurDate('-'));}// 全部到处(本页全部数据,接口全部导出)else {//本页导出checkTebData = exportData;table.exportFile('table1', checkTebData, 'xlsx', '我的xx' + getCurDate('-'));//接口全部导出param={xx:1yy:2}window.listExport(param)}}});},
});//导出
window.listExport=function (p){$.ajax({url: '/xxxx',data:p,type: 'get',success: function (res) {if (res.code == 200) {var pdfUrl = res.data ? res.data : nullif (pdfUrl) {//有返回pdf地址let type=pdfUrl.split('.').pop();let fileExtName = "";if(type=='xlsx'){fileExtName=".xlsx"}else {layer.msg("请导入的Excel文件!")}let randfile = new Date().getTime() + fileExtName;var oReq = new XMLHttpRequest();oReq.open("GET", pdfUrl, true,);oReq.responseType = "blob";oReq.onload = function () {var file = new Blob([oReq.response], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});saveAs(file, randfile);};oReq.send();}else{layer.msg("导出有误!")}}}})
}function saveAs(data, name) {var urlObject = window.URL || window.webkitURL || window;var export_blob = new Blob([data]);var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')save_link.href = urlObject.createObjectURL(export_blob);save_link.download = name;save_link.click();
}//获取当前日期
function getCurDate(split){var d = new Date(new Date());var year = d.getFullYear();var month = d.getMonth()+1;var day = d.getDate();var nowDate = year+split+getNow(month)+split+getNow(day);return nowDate;
}
function getNow(s) {return s < 10 ? '0' + s: s;
}