当前位置 博文首页 > json_li的博客:Laravel Excel 3.1 导出

    json_li的博客:Laravel Excel 3.1 导出

    作者:[db:作者] 时间:2021-08-25 15:50

    laravel版本 6.2 不能再指定 maatwebsite/excel 2版本的,而版本3的excel基本方法已经重写了,使用方法也与2.x,大不一样!

    目录

    1.安装

    2. 3.x方法与2.x方法比较

    3.excel 导出

    4.设置标题,设置数据


    1.安装

    composer require maatwebsite/excel

    不需要在config/app.php中加载配置

    2. 3.x方法与2.x方法比较

    ?3.excel 导出

    php artisan make:export AdminExport --model=Admin

    会在app下创建Exports目录

    app
    ├── Exports
    │   ├── AdminExport.php
    

    AdminExport.php 代码内容

    <?php
    
    namespace App\Exports;
    
    use App\Admin;
    use Maatwebsite\Excel\Concerns\FromCollection;
    
    class AdminExport implements FromCollection
    {
        /**
        * @return \Illuminate\Support\Collection
        */
        public function collection()
        {
            // 数据表模型层 查询admin表中所有数据
            return Admin::all();
        }
    }
    

    在控制器中调用

    use App\Http\Controllers\Controller;
    use App\Exports\AdminExport;
    use Maatwebsite\Excel\Facades\Excel;
    
    class AdminController extends Controller
    {
    
        /**
         * 导入格式xls文件下载
         */
        public function export()
        {
            return Excel::download(new AdminExport(), '用户.xls');
        }
    

    打开文件

    4.设置标题,设置数据

    代码如下:

    <?php
    
    namespace App\Exports;
    
    use App\Admin;
    use Illuminate\Support\Collection;
    use Maatwebsite\Excel\Concerns\FromCollection;
    
    class AdminExport implements FromCollection
    {
        /**
        * @return \Illuminate\Support\Collection
        */
        public function collection()
        {
            // 数据表模型层
            return new Collection($this->createData());
        }
    
        /**
         * 业务代码
         * @return mixed
         */
        public function createData()
        {
            $arr = Admin::where('status', 1)->get(['id', 'name', 'login_count', 'created_at'])->toArray();
            array_unshift($arr, ['ID', '账号', '登录次数', '创建时间']);
            return $arr;
        }
    }

    效果如下:

    ?

    提示:

    // 参数3 当无法识别导出文件的后缀时,可指定文件后缀 文件后缀首字母需大写
    Excel::download(new AdminExport(), '用户.xls', 'Xls')

    可使用的文件类型

    借鉴文章:https://learnku.com/articles/32391

    cs
    下一篇:没有了