layui 导出Excle( 全部数据,没有分页 )

本文详细介绍了如何使用layui的table组件实现数据导出到Excel的功能,包括HTML结构、JavaScript代码及PHP后端处理方式,解决了table.exportFileisnotafunction错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上的帖子大部分 水分很多,官网文档 也模糊不清。自己研究两三个小时 终于搞定  废话不多说 直接贴代码

特别提示: 这卡了我很久!!!

如果 你报 table.exportFile is not a function  是因为 你的 layui 下的 table.js  不是最新的 更新为最新的即可!

 下面贴代码  代码如果不能用 你打死我!!    如果你成功 给个好评! 点点关注!

html 

  <div class="layui-input-inline pull-right" style="padding: 1px">
                <div class="layui-inline ">
                    <button class="layui-btn layui-btn-sm" title="导出" type="button" name="myfile" id="export"><i
                            class="layui-icon layui-icon-export"></i>导出交易Excel
                    </button>
                </div>
            </div>
        </form>
        <div class="data">
            <p><i class="fa fa-spinner fa-spin"></i> 加载中...</p>
        </div>
    </div>
    <table class="layui-hide" id="test" lay-filter="test"></table>
</block>
<block name="script">
    <script type="text/javascript">
        $("#export").click(function () {
            layui.use('table', function(){
                var table = layui.table;
                var ins1 = table.render({
                    elem: '#test'
                    , url: 'PHPExcel'
                    ,where:{
                        status:$('#status').val(),
                        keyword:$('#keyword').val(),
                        time:$('#time').val(),
                    }
                    , title: '提现记录表'
                    , cols: [[
                        {field: 'nickname', title: '合伙人姓名', width: 120, edit: 'text'}
                        , {field: 'mobile', title: '手机号', width: 180, edit: 'text'}
                        , {field: 'bank_card', title: '银行卡号', width: 250, sort: true, totalRow: true}
                        , {field: 'bank_name', title: '开户行名称', width: 250, edit: 'text', sort: true}
                        , {field: 'bank_address', title: '开户行地址', width: 250, sort: true, totalRow: true}
                        , {field: 'money', title: '提现金额', width: 100}
                        , {field: 'tax_money', title: '扣除税款', width: 100}
                        , {field: 'charge', title: '扣手续费', width: 120}
                        , {field: 'tx_money', title: '到账金额', width: 120}
                        , {field: 'create_time', title: '提现时间', width: 250}
                    ]]
                    ,done: function (res) {
                        exportData = res.data;
                         table.exportFile(ins1.config.id, exportData, 'xls');
                    }
                });

            })
        });
    </script>

 

PHP

public function PHPExcel()
{

    $status = $this->request->post('status', -1, 'intval');
    $time = input('time', '', 'trim');
    $keyword = input('keyword', '', 'trim');
    $list = Db::table('tx')->alias('a')
        ->leftJoin('user b', 'a.user_id = b.id')
        ->field('a.*,b.nickname,b.mobile,b.bank_card,b.bank_name,b.bank_address')
        ->when($time, function ($q) use ($time) {
            $rang_time = range_time($time);
            $t1 = date('Y-m-d', $rang_time[0]);
            $t2 = date('Y-m-d', $rang_time[1]);
            return $q->whereTime('create_time', 'between', [$t1, $t2]);
        })->when($keyword, function ($q) use ($keyword) {
            return $q->where('b.mobile|b.nickname', $keyword);
        })->when(isset($status), function ($q) use ($status) {
            if ($status > -1) {
                return $q->where('a.status', $status);
            }
        })->order('a.id', 'desc')
        ->select();
    
    foreach ($list as &$value) {
        $card = '`' . $value['bank_card'] . '`';
        $value['bank_card'] = $card;
    }

    return Y::json(1, '提现记录表', $list);

}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值