概述
昨天领导让我给页面加一个数据导出, 开始我以为是本页导出,我就加一个layui自带的,结果告诉我不行,要导出所有的数据,而且不是页面展示的那个表格的,我就试试
引入layui的JS和CSS就不说了直接来干货。
首先获取数据不说了ajax,导出Excel先看官网给的demo
table.exportFile(['名字','性别','年龄'], [
['张三','男','20'],
['李四','女','18'],
['王五','女','19']
], 'csv'); //默认导出 csv,也可以为:xls
我们会发现按照这个demo做下去我们没有办法定义导出表格的名字,所有的表格都是table_.xls。所以我就进table.js里面看了一下源码,发现 table.exportFile函数里面是这么一段代码来设置名字
alink.download = (config.title || 'table_'+ (config.index || '')) + '.' + type;
于是我就把它给改成了
alink.download =name + '.' + type;
同时在函数前面增加了一个参数
table.exportFile = function(id, data, type)
改为了
table.exportFile = function(id, data, type,name)
保存之后我们就可以使用ajax获取到的动态数据拿到data,并把data放到函数中导出,
layui.use(['layer','admin','table'], function () {
var $ = layui.$, admin = layui.admin,layer=layui.layer,table = layui.table;
admin.req({
url: 你获取数据的URL,
async: false,
success: function (res) {
var cons=new Array();
var dat=res.data;
for ( i in dat){
cons.push(dat[i]);
}
table.exportFile([' 表头',' 表头',' 表头',' 表头',' 表头',' 表头'], cons , 'xls',name);
}
});
});
这里有两点需要注意:
1.如果你的data是一个对象的集合,必须新建一个数组,通过循环把对象放到数组,不能直接把data放到里面,不然你导出来的是object不是具体值。
2.你的标题要和你导出对象的每个字段对应,你导出来的顺序需要比对一下。
最后
以上就是天真超短裙为你收集整理的使用layui把数据以Excel格式导出的全部内容,希望文章能够帮你解决使用layui把数据以Excel格式导出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复