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);
  • 相关阅读:
    汉语编程
    第一次作业
    个人总结
    psp表格
    第三次个人作业——用例图设计
    第二次结对作业
    第一次结对作业
    第二次个人编程作业
    第一次编程作业
    第一次博客作业
  • 原文地址:https://www.cnblogs.com/kkform/p/8962149.html
Copyright © 2011-2022 走看看