Laravel Excel - Базовый экспорт

Установка Laravel Excel 3.1

Системные требования:

  • PHP: ^7.0
  • Laravel: ^5.5
  • PhpSpreadsheet: ^1.6
  • PHP extension php_zip enabled
  • PHP extension php_xml enabled
  • PHP extension php_gd2 enabled

Установка через composer. Команда установит пакет, а также PhpSpreadsheet

composer require maatwebsite/excel

Maatwebsite\Excel\ExcelServiceProvider автоматически обнаруживается (auto-discovered) и регистрируется по умолчанию

Если вы хотите зарегистрировать его самостоятельно, добавьте ServiceProvider в config/app.php
В документации описано как это сделать

Базовый экспорт за 5 минут

Чтобы создайть класс экспорта в app/Exports выполните команду artisan

Передавая параметр --model=User вы указываете, что экспорт нужно подготовить для модели User

php artisan make:export ExportBasic --model=User

Файл будут расположен так:

.
├── app
│   ├── Exports
│   │   ├── ExportBasic.php
│ 
└── composer.json

А содержание файла ExportBasic.php:

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class ExportBasic implements FromCollection
{
  /**
  * @return \Illuminate\Support\Collection
  */
  public function collection()
  {
    return User::all();
  }
}

Теперь в контроллере можно вызвать созданный экспорт:

namespace App\Http\Controllers;

use App\Exports\ExportBasic;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller 
{
  public function exportBasic() 
  {
    return Excel::download(new ExportBasic, 'users-'.__FUNCTION__.'.xlsx');
  }
}

Также не забудем указать роут для экспорта:

Route::get('exportBasic', 'UsersController@exportBasic');

Дополнительные настройки экспорта

Использование шаблонизатора Blade

Вы можете определить содержание экспортируемой таблицы в шаблоне. Для этого вам понадобится создать файл resources/view/exports/users.blade.php:

  <table>
    <thead>
    <tr>
      <th>ID</th>
      <th>Имя</th>
      <th>Email</th>
    </tr>
    </thead>
    <tbody>
    @foreach($items as $item)
      <tr>
        <td>{{$item->id}}</td>
        <td>{{$item->name}}</td>
        <td>{{$item->email}}</td>
      </tr>
    @endforeach
    </tbody>
  </table>
  

Файл экспорта app/Exports/ExportBladeBasic.php

  namespace App\Exports;
  
  use App\User;
  
  // Для вывода с использованием Blade
  use Illuminate\Contracts\View\View;
  use Maatwebsite\Excel\Concerns\FromView;
  
  class ExportBladeBasic implements FromView
  {
    // Экспорт с использованием шаблонизатора Blade
    public function view(): View
    {
      $items = User::all();
      return view('exports.users', ['items' => $items]);
    }
  }
  

Метод в контроллере

  use Maatwebsite\Excel\Facades\Excel;
  use App\Exports\ExportBladeBasic;
  //..
  
  public function exportBladeBasic() 
  {
    return Excel::download(new ExportBladeBasic, 'users-'.__FUNCTION__.'.xlsx');
  }
  

Роут

Route::get('exportBladeBasic', 'UsersController@exportBladeBasic');

... Материал будет дополняться.

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODx] Генератор настроек MIGX

Документация на русском по MODX MIGX

[JS] Маска для ввода телефона +7(___)___-__-__

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

[MODx] minishop2 tips

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODx, miniShop2] Генерация YML для выгрузки в маркет

jQuery.Maskedinput js - документация на русском с примерами

[MODx] Подсказки по API

[OpenCart] Вывести на главную все категории с картинками

[MODx] Сайт на обслуживании (выключить сайт)

[MODx, MIGX] Примеры использования

[PHP, JSON] Пример перевода с помощью Yandex Translate API

Расширение свойств товаров minishop2

Универсальная форма обратной связи — feedBackForm

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

[Opencart] Вернуть английский язык, если вы его удалили

[OpenCart] Вывести модуль напрямую через контроллер

[MODX, MiniShop2] Примеры выборки where, optionFilters, innerJoin

[MODX, MIGX] Вывести getImageList только если он не пустой

[MODX] pThumb - ресайз изображений. Примеры использования.

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

[MODx, Quip] Более рабочий вариант.

Отключить автозаполнение input

Красивое адаптивное меню под pdoMenu

Все записи

Наш сайт использует куки, нажмите «ОК» если вы не против
OK