layui导出Excel表格自定义文件名称

预备操作

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文件夹引入项目
layui导出Excel表格自定义文件名称_第1张图片
前端界面设置button按钮

		<div class="xia">
             <button type="button" id="dao" class="layui-btn">导出选中数据 <i class="layui-icon">&#xe67d;</i></button>
         </div>
         <div class="xia">
             <button type="button" id="daoAll"class="layui-btn">导出全部数据 <i class="layui-icon">&#xe67d;</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);
                });
            }
           
        });
        });

你可能感兴趣的:(Excel,layui表格)