layui 导出 Excel表格的方法

这篇具有很好参考价值的文章主要介绍了layui 导出 Excel表格的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

如下图:

layui 导出 Excel表格的方法

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

语法:

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、下载插件放入项目中

layui 导出 Excel表格的方法

 

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、导出全部数据文章来源地址https://www.toymoban.com/news/detail-515227.html

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表格的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • EasyPio导入导出excel表格

    EasyPoi是一个功能强大且易于使用的Java Excel操作框架,其主要特点如下: 简单易用:EasyPoi提供简洁而直观的API,使Java开发人员能够轻松地进行Excel导入导出操作,无需繁琐的代码和复杂的配置。 支持多种数据源:EasyPoi支持从数据库、List集合、Map等各种数据源快速生成Excel文

    2024年02月12日
    浏览(56)
  • axios请求、 Excel 表格导出

    注:基于axios 直接请求后端接口,导出Excel 表格

    2024年02月11日
    浏览(33)
  • vue导出excel表格(详细教程)

    三、在代码中使用 四、数据 DetailsForm:需要导出的数据 title:表格标题 json_fields:里面的属性是excel表每一列的title,用多个词组组成的属性名(中间有空格的)要加双引号; 指定接口的json内某些数据下载,若不指定,默认导出全部数据中心全部字段 五、效果  六、一些常用参数

    2024年02月16日
    浏览(39)
  • Vue前端表格导出Excel文件

    分享一个Vue前端导出Excel文件的方法。记录学习! 功能需求 :将表格的全部数据导出Excel格式的文件 前端 :Vue3+Element-Plus 这个导出方法全部为前端操作,后端只需要传入表格数据到前端即可(基础的多表查询,用的内连接) 2.1 核心方法 将这个导出方法单独封装出来,带一

    2023年04月24日
    浏览(90)
  • 《springboot中实现excel表格导出》

    简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache POI是一个开源的Java API,用于处理Microsoft Office文档格式,包括Excel电子表格。在Spring Boot中,可以使用Apache POI创建Excel文档,并将其写入HTTP响应中,以实现Excel表格的导出。

    2024年02月16日
    浏览(40)
  • 记录--Vue中如何导出excel表格

    注意,此插件对node有版本要求,安装失败检查一下报错是否由于node版本造成! 在template节点下使用download-excel标签即可 在data节点下定义数据 点击导出 如果需要在点击按钮前动态的获取数据,则需要使用fetch属性来指定一个参数。 注意,使用此参数时不能再绑定data参数 以导

    2024年02月05日
    浏览(39)
  • Java Poi导出Excel表格详解

    一、导出下面的表格 二、流程详解         1、导出excel需要先将数据准备好         2、创建工作傅对象SXSSFWorkbook         3、使用工作傅对象创建sheet对象(工作页)         4、使用sheet对象创建行对象row(行对象)         5、使用row对象创建cell对象(单元格

    2024年02月10日
    浏览(49)
  • vue 实现前端处理 “数组数据“ 转excel格式文件,并导出excel表格

    一、安装插件 XLSX 二、页面引入        希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~

    2024年01月18日
    浏览(55)
  • el-tabel导出excel表格

    1、安装插件 2、引入插件 3、在tabel中添加ref属性和导出方法   4、添加方法  

    2024年02月15日
    浏览(33)
  • php使用PhpSpreadsheet导出Excel表格详解

    本文会介绍php使用PhpSpreadsheet操作Excel,供大家参考,具体内容如下: 1、简介 PhpSpreadsheet 是一个用纯PHP编写的库,提供了一组类,使您可以读取和写入不同的电子表格文件格式 PhpSpreadsheet 提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包