layui php phpexcel导出,layui导出表格全部数据

layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。

f2d701a6f29e878cba7375bf2ee60a6e.png

layui自带的导出表格,只能导出当前页面,如果当前页包含全部数据,那不就是导出全部数据了吗,所以我给导出事件单独定义了一个请求,当触发这个请求时,在后台查询数据时不要按接收的page 和 limit查询,而是查询全部,这样就实现了导出全部数据。

页面代码:

导出报表

var table = layui.table,

form = layui.form,

layer = layui.layer;

//导出表格

var ins1 = table.render({

elem: '#data_export',

url: "url", //数据接口

method: 'post',

title: '导出表的表名',

where: {

mycode: "all"

},

limit: 10,

cols: [[

{field: 'id', title: 'ID'},

{field: 'name', title: '名称'},

]],

done: function (res, curr, count) {

exportData = res.data;

}

});

//导出按钮

$(".export").click(function () {

table.exportFile(ins1.config.id, exportData, 'xls');

});

})

后台处理:if ($mycode) { $data = M('mysql')->where($where)->select();

echo json_encode(['code' => 0, 'msg' => "", 'data' => $data]);

}

优化:对应的代码是上面第二段js代码://导出改为单独的事件,每次点击导出才会执行

$(".export").click(function(){

var ins1=table.render({

elem: '#data_export',

url: "url", //数据接口

method: 'post',

title: '表名',

where: {

mycode: "all"

},

limit: 10,

cols: [[

{field: 'id', title: 'ID'},

{field: 'name', title: '名字'},

]],

done: function (res, curr, count) {

exportData=res.data;

table.exportFile(ins1.config.id,exportData, 'xls');

}

});

})

其实就是把 table.exportFile(ins1.config.id,exportData, 'xls'); 放到了done中,虽然看起来改的不多,但是本质已经变了,之前的方式是进入页面就加载隐藏的导出表。

而现在是点击导出的时候才会渲染隐藏导出表,在导出表内容多的时候,导出速度慢点用户会觉得是合理的,比页面加载速度慢要好多了。

更多layui相关知识请关注layui框架。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值