温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

layui如何导出表格全部数据

发布时间:2021-09-23 16:18:29 来源:亿速云 阅读:238 作者:小新 栏目:开发技术

这篇文章主要介绍了layui如何导出表格全部数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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

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

页面代码:

<!--导出按钮 或其他触发事件--><button class="export">导出报表</button><!--导出表 不展示--><div style="display: none;">    <table id="data_export">    </table></div>
layui.use(['form', 'table', 'layer'], function () {        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如何导出表格全部数据”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI