fastadmin 自定义导出excel

这篇博客介绍了如何通过JavaScript触发导出操作,然后利用PHP的XLSXWriter库将数据导出为Excel文件。在HTML中定义了一个按钮,点击后通过JS收集表单数据并构造请求URL,最后PHP接收到请求后处理数据并调用XLSXWriter生成Excel文件进行下载。涉及的技术包括前端的JavaScript、后端的PHP以及PHPExcel的替代库XLSXWriter。
摘要由CSDN通过智能技术生成

html代码

<a href="javascript:;" class="btn btn-success" id="excel_dc"> {:__('导出')}</a>

 

 js代码

// 导出数据
$('#excel_dc').click(function(){
    var filter='{';
    var op='{';

    // 跳转
    var formdata = $("form.form-commonsearch").serialize();
    var data=formdata.split('&');
    data.forEach(function(v){
        let a= v.split('=');
        if(a[1]){
            filter+='"'+[a[0]]+'":"'+a[1]+'",';
            op+='"'+[a[0]]+'":"",';
        }
    })
    if(filter.length > 2){
        filter=filter.slice(0,-1);
        op=op.slice(0,-1);
    }
    var url='http://www.aaa.cn/aaaaa.php/aaa/aaa/excel_dc?addtabs=1&sort=id&order=desc&offset=0&limit=18000&filter=';
    url += filter +'}&op='+ op+'}';
    window.open(url);
})

 PHP代码


/**
 * 数据导出
 */
public function excel_dc(){
    $ck=array_column($ck,null,'id');
    list($where, $sort, $order, $offset, $limit) = $this->buildparams();

    $list = $this->model
        ->where($where)
        ->order($sort, $order)
        ->paginate($limit);

    $list=$list->toArray();
    // var_dump($count);die;
    # 实例化phpexcel
    vendor("PHP_XLSXWriter.XLSXWriter");
    $writer = new \XLSXWriter;
    $sheetHeaderb=['会员名称','会员电话','会员性别','会员年龄'];
    $writer->writeSheetRow('Sheet1',  $sheetHeaderb);

    # 数据填充
    foreach ($list['data'] as $k => $v) {
        $writer->writeSheetRow('Sheet1', array($v['name'],$v['sj'],$v['xb'],$v['nl']) );
    }
    $fileName=date('Y-m-d');
    //设置 header,用于浏览器下载
    $writer->writeToStdOut();
    header('Content-disposition: attachment; filename="'.$fileName.'.xlsx'.'"');
    header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值