layui导出Excel表格的方法代码举例

 更新时间:2023年11月17日 09:47:32   作者:其斤r  
使用了layui自带的导出功能后,真的是超级便捷,下面这篇文章主要给大家介绍了关于layui导出Excel表格的方法代码,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、利用layui自带的excel导出功能

// 原始容器
<table id="demo" lay-filter="test"></table>
//JS 调用:
table.render({
  elem: '#demo'
  ,toolbar: '#toolbarDemo' // 重点,可默认,也可自己设置按钮
  ,defaultToolbar: ['filter', 'exports'], // exports为导出按钮
  //,…… //其他参数
});

如下图:

 也可设置数据导出按钮,通过方法导出任意数据,方法如下:

语法:

table.exportFile(id, data, type)

示例:

var ins1 = table.render({
    elem: '#demo1'
    ,id: 'test'
    // ,.... //其他参数
})
 
// 将上述表格示例导出为csv文件
table.exportFile(ins1.config.id, data); // data 为该实例中的任意数量的数据

该方法也可以不用依赖table的实例,可直接导出任意数据:

table.exportFile(['名字','性别','年龄'], [
  ['张三','男','20'],
  ['李四','女','18'],
  ['王五','女','19']
], 'csv'); //默认导出 csv,也可以为:xls

二、使用第三方扩展插件:excel.js

1、下载插件放入项目中

2、前端界面设置button按钮

<button class="layui-btn layui-btn-normal " lay-event="bgShow">导出</button> 

3、获取点击事件

//头工具栏事件
       layui.table.on('toolbar(table)', function (obj) {
            var checkStatus = layui.table.checkStatus(obj.config.id);
            switch (obj.event) {
                case 'bgShow':   //导出
                    exportFile("table", "XXXXX"); // 第一个参数:table;第二个参数为文件名称
                    break;
            };
        });

4、table分页,导出当前页内容

function exportFile(id, titleInfo) {
 //根据传入tableID获取表头
 var headers = $("div[lay-id=" + id + "] .layui-table-box table").get(0);
 var htrs = Array.from(headers.querySelectorAll('tr'));
 var titles = {};
 for (var j = 0; j < htrs.length; j++) {
     var hths = Array.from(htrs[j].querySelectorAll("th"));
     for (var i = 0; i < hths.length; i++) {
         var clazz = hths[i].getAttributeNode('class').value;
         if (clazz != ' layui-table-col-special' && clazz != 'layui-hide') {
             //排除居左、具有、隐藏字段
             //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
             titles['data-field' + i] = hths[i].innerText;
          }
     }
  }

 //根据传入tableID获取table内容
 var bodys = $("div[lay-id=" + id + "] .layui-table-box table").get(1);
 var btrs = Array.from(bodys.querySelectorAll("tr"));
 var bodysArr = new Array();
 for (var j = 0; j < btrs.length; j++) {
    var contents = {};
    var btds = Array.from(btrs[j].querySelectorAll("td"));
    for (var i = 0; i < btds.length; i++) {
        for (var key in titles) {
            //修改:默认字段data-field+i,兼容部分数据表格中不存在data-field值的问题
            var field = 'data-field' + i;
            if (field === key) {
               //根据表头字段获取table内容字段
               contents[field] = btds[i].innerText;
            }
        }
     }
     bodysArr.push(contents)
  }
  //将标题行置顶添加到数组
  bodysArr.unshift(titles);
  // 导出excel
  layui.config({
     base: 'assets/libs/layui_extends/' // 插件路径
  }).use(['excel'], function () {
     var excel = layui.excel;
     excel.exportExcel({
        sheet1: bodysArr
     }, titleInfo + new Date().toLocaleString() + '.xlsx', 'xlsx');
   });
}

5、导出全部数据

function exportFile(id, titleInfo) {

   $.ajax({
       url: 'xxxxxx', // 获取数据的接口
       type: 'get',
       data: {},
       success: function (res) {
          if (res.code == 0) {
             var excelData = res.data;
             layui.config({
                base: 'assets/libs/layui_extends/'
             }).use(['excel'], function () {
                var excel = layui.excel;
                excelData = excel.filterExportData(excelData, [
                    'aaa','bbb','ccc' // 对应需要导出的字段,根据后台返回数据对应需要字段
                ])
                // 对应数据的表头
                excelData.unshift({ aaa: 'aaa', bbb: 'bbb', ccc: 'ccc' });
                excel.exportExcel(excelData, titleInfo + new Date().toLocaleString() + '.xlsx', 'xlsx');
                        });
          } else {
               layer.closeAll();
               layer.msg("数据导出失败", { icon: 2 });
          }
      },
      error: function (error) {
         console.log("获取全部数据失败:", error);
      }
   })
}

总结 

到此这篇关于layui导出Excel表格的文章就介绍到这了,更多相关layui导出Excel表格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • js判断横竖屏及禁止浏览器滑动条示例

    js判断横竖屏及禁止浏览器滑动条示例

    这篇文章主要介绍了使用js如何判断横竖屏及禁止浏览器滑动条,需要的朋友可以参考下
    2014-04-04
  • javascript对select标签的控制(option选项/select)

    javascript对select标签的控制(option选项/select)

    html中的select标签,也是asp.net中的asp:DropDownList控件,接下来介绍javascript对select标签的控制,感兴趣的朋友可以了解下,或许本文对你有所帮助
    2013-01-01
  • JS实现简单九宫格抽奖

    JS实现简单九宫格抽奖

    这篇文章主要为大家详细介绍了JS实现简单九宫格抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • JS实现横向与竖向两个选项卡Tab联动的方法

    JS实现横向与竖向两个选项卡Tab联动的方法

    这篇文章主要介绍了JS实现横向与竖向两个选项卡Tab联动的方法,涉及JavaScript遍历及动态修改页面元素属性的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • 如何在CocosCreator中使用JSZip压缩

    如何在CocosCreator中使用JSZip压缩

    这篇文章主要介绍了在CocosCreator中使用JSZip压缩,对JSZip感兴趣的同学,不妨看一下,并且亲自试一试
    2021-04-04
  • JS设计模式之状态模式概念与用法分析

    JS设计模式之状态模式概念与用法分析

    这篇文章主要介绍了JS设计模式之状态模式概念与用法,简单讲述了状态模式的概念、功能、应用场景并结合javascript实例形式分析了状态模式的简单定义及使用方法,需要的朋友可以参考下
    2018-02-02
  • JavaScript中获取未知对象属性的代码

    JavaScript中获取未知对象属性的代码

    JavaScript中获取未知对象属性的代码,需要的朋友可以参考下。
    2011-04-04
  • JavaScript动态创建link标签到head里的方法

    JavaScript动态创建link标签到head里的方法

    这篇文章主要介绍了JavaScript动态创建link标签到head里的方法,分别介绍了使用jQuery的方法、使用原生javascript方法与IE特有的createStyleSheet方法等,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • JavaScript实现瀑布流以及加载效果

    JavaScript实现瀑布流以及加载效果

    这篇文章主要为大家详细介绍了JavaScript实现瀑布流以及加载效果的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JavaScript之移动端H5生成图片解决方案讲解

    JavaScript之移动端H5生成图片解决方案讲解

    这篇文章主要介绍了JavaScript之移动端H5生成图片解决方案讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论