layui2.0数据表格导出复杂表头EXCEL解决方案,table2excel

简介: layui是一套面向所有层次的前后端开发者,零门槛开箱即用的前端UI解决方案。很多的后端开发在开发后台系统时候都会选择它。 数据表格组件也是使用非常频繁的,它可以快速从api得到数据并进行处理渲染成表格,并且还有排序、总计、导出表格等等功能。

layui 数据表格组件


layui是一套面向所有层次的前后端开发者,零门槛开箱即用的前端UI解决方案。很多的后端开发在开发后台系统时候都会选择它。 数据表格组件也是使用非常频繁的,它可以快速从api得到数据并进行处理渲染成表格,并且还有排序、总计、导出表格等等功能。


error_icon.png


在一次的需求中,需要使用复杂表头并且导出EXCEL表格,发现layui并不支持复杂表头的处理,社区之中也还未找到相关的方案。于是使用了table2excel插件协助完成需求。(如果你有更好更方便的方法,希望你能联系我或者留言交流一下,谢谢) 以下简单记一下笔记和步骤,方便自己和他人。


talbe2excel


https://github.com/rusty1s/table2excel


在github上有挺多个叫table2excel的仓库,我选择了以上这个仓库。 在页面引入jquery和table2excel.js 一个快速的demo


<script src="table2excel.js"></script>
<script>
  var table2excel = new Table2Excel();
  table2excel.export(document.querySelectorAll("table"));
</script>


但是此方式在layui生成的数据表格中并不适用。具体原因和解决方案有空待研究~ 其他小伙伴也可以补充哦!


原生写的table标签可以正常导出,并且可以使用复杂表头。 于是绕了一下弯路,在layui数据表格加载完数据后,在页面操作原生tableDom(并且隐藏起来 (╹▽╹) ),再使用table2excel导出表格。


<table id="report-table" cellpadding=1 cellspacing=1 border =1>
    <tr>
        <th rowspan="2">id</th>
        <th colspan="2">信息</th>
    </tr>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    <tbody id="report-table-tbody">
        <tr>
            <th>1</th>
            <th>Siam</th>
            <th>19</th>
        </tr>
    </tbody>
</table>


javascript代码


table.render({ //其它参数在此省略
  done: function(res, curr, count){
    $.each(res.data,function(index,value){
        let html = '';
        html += '<tr>';
        html += '<td>';
        html += '<td>'+value.name+'</td>';
        html += '<td>'+value.other+'</td>';
        html += '</td>';
        html += '</tr>';
        $('#report-table-tbody').append(html);
    });
  }
});
$('#report-table-downexcel').click(function(){
  var table2excel = new Table2Excel();
  table2excel.export($('#report-table'));
})


这样子就可以完成导出复杂表头的表格了。

目录
相关文章
|
1天前
|
JavaScript
vue导出excel无法打开问题
vue导出excel无法打开问题
|
2天前
|
Java
java导出复杂excel
java导出复杂excel
|
2天前
|
easyexcel BI
excel合并列导出文件
excel合并列导出文件
|
2天前
|
前端开发
基于jeecgboot的flowable流程任务excel导出功能
基于jeecgboot的flowable流程任务excel导出功能
10 1
|
10天前
|
JSON JavaScript 前端开发
使用JavaScript和XLSX.js将数据导出为Excel文件
使用JavaScript和XLSX.js将数据导出为Excel文件
21 0
|
15天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
11 1
|
1月前
|
easyexcel
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
|
1月前
|
SQL 数据库连接 数据库
【SQL Server】2. 将数据导入导出到Excel表格当中
【SQL Server】2. 将数据导入导出到Excel表格当中
47 0
|
2月前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!