layui 从表格导出全部数据(不需外部加载任何类)

layui当前内置的导出表格数据只能是导出当前页面的数据,不能导出全部的数据,本来查阅了很多,大部分都是自己重新写导出,但是直接从url导出,我不知道怎么写也不知道怎么重新改变参数请求,所以想了一个模拟事件来实现导出全部数据。

前提介绍:页面上有搜索和layui数据表格展示,用户刚进入时默认查询数据展示出来,也可以根据不同条件搜索内容展示。类似如下

原理是:当单击“导出报表”按钮时,先给搜索按钮添加一个单击事件,让他先查询刚才条件所有的数据展示到页面,再导出。这样就可以导出全部的数据。但是怎么区分是正常检索还是需要导出报表的检索呢?再这里我就用了一个隐藏的input的值来判断。

-----------------------------------------------------------------------------------------------------------------------

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在layui table表格中实现导出操作,需要使用第三方插件,如tableX、tableExport等。这里以tableX为例,具体实现步骤如下: 1. 引入tableX插件和相关依赖文件 ```html <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/js-xlsx/0.8.0/xlsx.full.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/blobjs/1.1.1/Blob.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/TableExport/5.2.0/js/tableexport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/tableExport.jquery.plugin/1.0.3/js/tableExport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/js/table-x.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/css/table-x.min.css"> ``` 2. 在table的初始化配置中添加导出按钮 ```javascript table.render({ elem: '#demo', url: '/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'email', title: '邮箱', minWidth: 200}, {field: 'sex', title: '性别', width: 80, sort: true}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', minWidth: 200}, {field: 'experience', title: '积分', width: 80, sort: true}, {field: 'score', title: '评分', width: 80, sort: true}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 135, sort: true}, ]], page: true, toolbar: 'default', //开启头部工具栏,并为其绑定左侧模板 defaultToolbar: ['exports', 'print', 'filter'], //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可 done: function(res, curr, count) { tableExport.render({ elem: '#demo', filename: '数据', sheetName: 'Sheet1', type: 'xlsx', title: '数据', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); } }); ``` 其中,toolbar配置项开启头部工具栏,并为其绑定左侧模板;defaultToolbar配置项自定义头部工具栏右侧图标,其中'exports'导出按钮。 3. 实现导出功能 ```javascript tableExport.render({ elem: '#demo', filename: '数据', sheetName: 'Sheet1', type: 'xlsx', title: '数据', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); ``` 其中,elem示要导出的table元素的选择器,filename导出文件名,sheetName导出文件的sheet名称,type导出文件型,title导出文件的标题,page示是否导出分页,style导出文件的样式。 4. 完整代码 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>layui表格导出操作</title> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.1.5/jszip.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/js-xlsx/0.8.0/xlsx.full.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/blobjs/1.1.1/Blob.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/TableExport/5.2.0/js/tableexport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/tableExport.jquery.plugin/1.0.3/js/tableExport.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/js/table-x.min.js"></script> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/table-x/1.0.2/css/table-x.min.css"> </head> <body> <table id="demo" lay-filter="test"></table> <script> layui.use(['table', 'tableExport'], function() { var table = layui.table; var tableExport = layui.tableExport; table.render({ elem: '#demo', url: '/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'email', title: '邮箱', minWidth: 200}, {field: 'sex', title: '性别', width: 80, sort: true}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', minWidth: 200}, {field: 'experience', title: '积分', width: 80, sort: true}, {field: 'score', title: '评分', width: 80, sort: true}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 135, sort: true}, ]], page: true, toolbar: 'default', defaultToolbar: ['exports', 'print', 'filter'], done: function(res, curr, count) { tableExport.render({ elem: '#demo', filename: '数据', sheetName: 'Sheet1', type: 'xlsx', title: '数据', page: true, style: 'border: 1px solid #ddd;text-align: center;' }); } }); }); </script> </body> </html> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值