基于layui框架实现导出table数据至excel

本文详细介绍如何使用layui框架结合自定义插件实现数据导出功能,包括前端按钮设置、导出条件筛选及数据格式调整等关键步骤,适用于需要根据查询条件导出全部数据的场景。

        layui本身带有导出excel功能,直接用table的toolbar功能就会在table的工具栏有导出excel的图表(官方文档上有,这里就不再赘述)。不过由于layui自身的导出excel无法导出全部数据,且不能根据查询条件进行数据的导出.所以就引出了这篇文章,话不多说,上干货。

首先需要引入插件(下载地址:https://fly.layui.com/extend/excel/#download

<script type="text/javascript" src="/static/layui_exts/excel.js"></script>

前端导出按钮

 <div class="layui-inline">
       <a style="background-color: green;" class="layui-btn layui-btn-normal export">导出</a>
 </div>

layui中启用excel模块

  var excel=layui.excel;

设定按钮点击事件

$(".export").on("click", function () {exportExcel();})

function exportExcel() {
        //根据查询条件,筛选导出数据
        $.get("/stockIn/excelData", {
            name: $(".name").val(),
            code: $(".code").val(),
            warehouseIds: $(".warehouseIds").val(),
            stockInTimeBegin: $("#stockInTime").val().split(" - ")[0],
            stockInTimeEnd: $("#stockInTime").val().split(" - ")[1],
        }, function (data) {
            if (data.data) {
                var exportData=data.data;
                //表头设置
                exportData.unshift({
                    productName: '物料名称',
                    quantity: '数量',
                    units:'单位',
                    inner: '入库人',
                    name: '仓库名称',
                    manufacturer: '厂商',
                    note: '备注',
                    createTime: '入库日期'
                });
                //文件名称
                var title='入库记录'+new Date().getTime()+'.xlsx';
                // 意思是:A列宽度120px,B列40px...,具体宽度根据字段值实际长度设定
                var colConf = excel.makeColConfig({
                    'A': 120,
                    'B': 40,
                    'C': 40,
                    'F': 140,
                    'G': 100,
                    'H': 140
                }, 80);

                excel.exportExcel({
                    sheet1: exportData
                }, title, 'xlsx', {
                    extend: {
                        '!cols': colConf
                    }
                });
            } else {
                layer.msg(data.msg);
            }
        })
    }
    

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值