طریقه خروجی گرفتن Excel از ورودی های یک کوئری در Laravel

img
img
img
img
shape
shape
image
1402
آبان

طریقه خروجی گرفتن Excel از ورودی های یک کوئری در Laravel

در این آموزش یک پروژه فرضی داریم که اطلاعات دانشجویان را در view به صورت زیر نشان میدهد

    


    @foreach($tempToken as $value)
        <tr>
            <td>{{$value->user->name}} {{$value->user->last_name}} </td>
            <td>{{$value->user->mobile}} </td>
        </tr>
    @endforeach
    

میخواهیم به محض کلیک روی دکمه زیر خروجی Excel برای کاربر دانلود شود.در این مثال ما name را به ورودی داده ایم که شما میتوانید توسط Request اطلاعات را بگیرید

<a href="{{ route('download.excel', ['name' => $_GET['name']]) }}">
    دانلود خروجی Excel <i class="tf-icons bx bx-export"></i>
</a>

 

برای ادامه کار ابتدا composer زیر را نصب میکنیم

composer require maatwebsite/excel 

 

در ادامه یک export برای ساخت خروجی اکسل میسازیم

 php artisan make:export TempMaliExport  

در این اکسپورت ما خروجی اکسل را از view میگیریم و به صورت زیر آن را معرفی میکنیم.

نکته اول:در اینجا چندین روش برای خروجی گرفتن وجود دارد که میتوانید از داکیومنت خود برنامه از اینجا آن را مطالعه کنید

نکته دوم:ما از  ShouldAutoSize, WithCustomStartCell برای نمایش بهتر مطالب در ستون ها اکسل استغاده کرده ایم

 

<?php

namespace App\Exports;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Contracts\View\View;

class TempMaliExport implements FromView, ShouldAutoSize, WithCustomStartCell
{
    protected $tempTokens;

    public function __construct($tempTokens)
    {
        $this->tempTokens = $tempTokens;
    }

    public function view(): View
    {
        return view('exports.temp_mali', [
            'tempTokens' => $this->tempTokens,
        ]);
    }
    public function startCell(): string
    {
        return 'A1'; // شروع از سلول A1
    }

}

 

view را در فولدر export با محتوای زیر ایجاد میکنیم. بعد از این کار تمام است و با کلیک روی لینک یک فایل اکسل دانلود میشود

<table>
    <thead>
    <tr>
        <th>نام </th>
        <th>شماره تلفن</th>
      
    </tr>
    </thead>
    <tbody>
    @foreach($tempTokens as $tempToken)
        <tr>
            <td>{{ $tempToken->user->name }} {{ $tempToken->user->last_name }}</td>
            <td>{{ $tempToken->user->mobile }}</td>
            
        </tr>
    @endforeach
    </tbody>
</table>

 

امیدوارم استفاده کرده باشید.اگر سوال یا نظری دارید در کامنت ها مطرح کنید

 

 

Comments list

Enter your comment

up