zoukankan      html  css  js  c++  java
  • laravel-admin 自定义导出表单

    官方导出文档

    laravel-admin自带的导出excel会导出与此模型关联的其他数据。所以参考官方文档调整代码

    文章表:id,title,user_id

    用户表:id,username

    //文章模型关联用户
        public function user(){
            return $this->belongsTo(User::class, 'user_id', 'id');
        }

     

    //ExcelExporter.php
    <?php
    namespace AppAdminExtensions;
    
    use EncoreAdminGrid;
    use EncoreAdminGridExportersAbstractExporter;
    use MaatwebsiteExcelFacadesExcel;
    
    class ExcelExpoter extends AbstractExporter
    {
        protected $head = [];
        protected $body = [];
        public function setAttr($head, $body){
            $this->head = $head;
            $this->body = $body;
        }
    
        public function export()
        {
            Excel::create('Filename', function($excel) {
                $excel->sheet('Sheetname', function($sheet) {
                    // 这段逻辑是从表格数据中取出需要导出的字段
                    $head = $this->head;
                    $body = $this->body;
                    $bodyRows = collect($this->getData())->map(function ($item)use($body) {
                        foreach ($body as $keyName){
                            $arr[] = array_get($item, $keyName);
                        }
                        return $arr;
                    });
                    $rows = collect([$head])->merge($bodyRows);
                    $sheet->rows($rows);
                });
            })->export('xls');
        }
    }

    使用方法:

                $excel = new ExcelExpoter();
                $excel->setAttr(['id', '标题', '作者'], ['id', 'title', 'user.username']);
                $grid->exporter($excel);
  • 相关阅读:
    解决CHM文件不能浏览的问题
    SAS宏功能(下)
    python一句话求素数
    SAS与DBMS系统(SqlServer)通信
    CSS3圆角
    水平居中和垂直居中
    滚动条的控制
    快来给你的桌面加一只可爱的蟑螂吧 那个人
    自己用的PHP缓存类
    jquery 全反选
  • 原文地址:https://www.cnblogs.com/kkform/p/8962149.html
Copyright © 2011-2022 走看看