1.找到 /layui/lay/modules/table.js文件
2.搜索exportFile,找到d.exportFile=function(e,t,i) 修改为 d.exportFile=function(e,t,i,name)
3.搜索table_,找到s.download=(l.title||“table_”+(l.index||"")),修改为 s.download=(name||l.title||“table_”+(l.index||""))
4…然后使用table.exportFile时,就包含四个参数。最后一个参数就是文件名如下↓
Product.tableId代表的是自己定义的表格id
var Product = {
tableId: “demo”
};
$("#dao").click(function () {
//这里获取多选中行的数据
var checkRows = table.checkStatus(Product.tableId);
if (checkRows.data.length === 0) {
layer.msg("请选择要导出的数据");
} else {
//弹框主要为了接收自定义输入文件名称
layer.prompt({title: '导出文件名称'}, function (val, index) {
table.exportFile(tableResult.config.id, checkRows.data, 'xls',val);
layer.close(index);
});
}
});
$("#daoAll").click(function () {
$.ajax({
url: "/EXAllProduct", //接口
type: "post",
data:{ //参数,不需要就删除掉
productCode:$("#Code option:selected").val(),
pep:$("#pep option:selected").val(),
productDate: $("#date").val()
},
success: function (data) {
layer.prompt({title: '导出文件名称'}, function (val, index) {
table.exportFile(tableResult.config.id, data.data, 'xls',val);
layer.close(index);
});
}, error: function () {
alert("网络错误");
}
});
})
下载地址:
https://www.baidu.com/link?url=lpGAQ3e_7zsjP4CCZBSEbaqtkk9C45lQNTbq3uDJ1GgAfDPh8IGS77iC1-5ioy1o&wd=&eqid=f0cb40be000a1025000000025cff016c
下载下来插件,把layui_exts文件夹引入项目
前端界面设置button按钮
<div class="xia">
<button type="button" id="dao" class="layui-btn">导出选中数据 <i class="layui-icon"></i></button>
</div>
<div class="xia">
<button type="button" id="daoAll"class="layui-btn">导出全部数据 <i class="layui-icon"></i></button>
</div>
前端界面js代码:导入excel插件,通过ajax从后台获取json字符串,调用excel插件的filterExportData方法导出excel表格。
layui.config({//配置并导入excel插件
base: '/layui/layui_exts/'
}).use(['excel','form','table','laydate','layer'], function () {
var $ = layui.jquery;
var form = layui.form;
var table = layui.table;
var laydate = layui.laydate;
var layer = layui.layer;
var excel = layui.excel;
// 导出选中数据按钮
$("#dao").click(function () {
var checkRows = table.checkStatus(Product.tableId);
if (checkRows.data.length === 0) {
layer.msg("请选择要导出的数据");
} else {
layer.prompt({title: '导出文件名称'}, function (val, index) {
var a = {id:[]};
$.each(checkRows.data,function (i, v) {
a['id'].push(v.id);
});
$.ajax({
url: "/getEX",
contentType : 'application/json;charset=utf-8',
type: "post",
dataType: "json",
data:JSON.stringify(a),
success: function (data) {
var data = data.data;
// 重点!!!如果后端给的数据顺序和映射关系不对,请执行梳理函数后导出,定义列
data = excel.filterExportData(data, [
'cjpp'
,'cjcpbh'
,'cjsbtm'
,'cjsj'
,'ytm'
,'czy'
]);
// 重点2!!!一般都需要加一个表头,表头的键名顺序需要与最终导出的数据一致
data.unshift({ cjpp: "品牌名称", cjcpbh: "产品编号",cjsbtm: '识别条码', cjsj: "采集时间",ytm: "二维码内容",czy: '操作员'});
excel.exportExcel(data,val+'.xlsx', 'xlsx');
//table.exportFile(tableResult2.config.id, data.data, 'xls',val);
}, error: function () {
alert("网络错误");
}
});
layer.close(index);
});
}
});
});