آموزش middleware در لاراول 6
آموزش middleware در لاراول 6
2020-01-11
آموزش پنل ادمین با لاراول با استفاده از voyager
آموزش ساخت پنل ادمین با لاراول با استفاده از voyager
2020-01-24
آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6

آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6

آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6 ، در یکی دیگر از قسمت های آموزش لاراول 6 ، شما نحوه ایمپورت (import) و اکسپورت (export) کردن یا دریافت خروجی اکسل یا فایل csv در لاراول 6 یاد خواهید گرفت.ما با استفاده از پکیج maatwebsite/excel می توانیم فایل اکسل یا csv را از دیتابیس یا پایگاه داده در برنامه لاراول ایمپورت و اکسپورت کنیم.

ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6

در این آموزش ما اسکریپت کامل نحوه ایمپورت کردن فایل csv به دیتابیس در لاراول 6 و همچنین اکسپورت کردن فایل csv از پایگاه داده در لاراول 6 را برای شما خواهیم نوشت.

در این آموزش ما از پکیج maatwebsite/excel برای عمل ایمپورت (import) و اکسپورت (export) کردن استفاده خواهیم کرد.پکیج maatwebsite/excel راهی آسان را برای ایمپورت و اکسپورت کردن با استفاده از مدل دیتابیس را فراهم می کند.

در زمان تهیه این آموزش ورژن 3.1 پکیج maatwebsite/excel ارائه شده است که ما نیز از همین ورژن استفاده کرده ایم.برای یادگیری ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6 کافی است گام های زیر را دنبال کنید.

گام اول: نصب لاراول

اول از همه ، ما نیاز داریم نسخه جدید لاراول یعنی لاراول 6 را با استفاده از دستور زیر نصب کنیم. چون ما قصد داریم این مثال را از ابتدا به شما آموزش دهیم.بنابراین ترمینال یا خط فرمان (command prompt) خود را باز کنید و دستور زیر را اجرا کنید:

composer create-project --prefer-dist laravel/laravel blog

گام دوم: نصب پکیج maatwebsite/excel

در این مرحله ما باید پکیج maatwebsite/exce را نصب کنیم ، بنابراین ترمینال خود را باز کنید و دستور زیر را اجرا کنید:

composer require maatwebsite/excel

اکنون فایل config/app.php را باز کنید و کلاس های زیر را به آرایه های providers و aliases اضافه کنید:

config/app.php

'providers' => [

	....

	Maatwebsite\Excel\ExcelServiceProvider::class,

],

'aliases' => [

	....

	'Excel' => Maatwebsite\Excel\Facades\Excel::class,

],

گام سوم: ایجاد رکوردهای ساختگی

در این مرحله ما به یک جدول “users” به همراه تعدادی رکورد ساختگی نیاز داریم تا به راحتی بتوانیم عمل ایمپورت و اکسپورت کردن را انجام دهیم.بنابراین ابتدا با استفاده از دستور زیر migration پیش فرض که بوسیله لاراول فراهم شده است را اجرا می کنیم.

php artisan migrate

پس از آن برای ایجاد کاربران ساختگی ما باید دستور زیر را اجرا کنیم:

php artisan tinker
factory(App\User::class, 20)->create();

گام چهارم: افزودن Route ها

در این مرحله ما نیاز داریم مسیر ایمپورت و اکسپورت فایل را ایجاد کنیم ، بنابراین فایل routes/web.php را باز کنید و مسیرهای زیر را به آن اضافه کنید:

routes/web.php

Route::get('importExportView', 'MyController@importExportView');
Route::get('export', 'MyController@export')->name('export');
Route::post('import', 'MyController@import')->name('import');

گام پنجم: ایجاد کلاس Import

در ورژن 3 پکیج maatwebsite/excel راهی برای ایجاد کلاس ایمپورت ارائه شده است و ما باید از آنها در کنترلر استفاده کنیم.بنابراین این یک راه عالی برای ایجاد کلاس Import جدید خواهد بود.پس دستور زیر را اجرا کرده و کدهای آن فایل را مانند زیر تغییر دهید:

php artisan make:import UsersImport --model=User

app/Imports/UsersImport.php

<?php
   
namespace App\Imports;
   
use App\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
    
class UsersImport implements ToModel, WithHeadingRow
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new User([
            'name'     => $row['name'],
            'email'    => $row['email'], 
            'password' => \Hash::make($row['password']),
        ]);
    }
}

شما می توانید دموی فایل csv را از اینجا دانلود کنید: دموی فایل csv.

گام ششم: ایجاد کلاس Export

در ورژن 3 پکیج maatwebsite/excel راهی برای ایجاد کلاس اکسپورت ارائه شده است و ما باید از آنها در کنترلر استفاده کنیم.بنابراین این یک راه عالی برای ایجاد کلاس Export جدید خواهد بود.پس دستور زیر را اجرا کرده و کدهای آن فایل را مانند زیر تغییر دهید:

php artisan make:export UsersExport --model=User

app/Exports/UsersExport.php

<?php
  
namespace App\Exports;
  
use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;
  
class UsersExport implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return User::all();
    }
}

گام هفتم: ایجاد کنترلر Controller

در این مرحله ما باید کنترلر جدیدی ایجاد کنیم.بنابراین کنترلری به نام MyController در مسیر “app/Http/Controllers/MyController.php” ایجاد می کنیم.این کنترلر تمام درخواست های importExportView ، export و import و پاسخی که بازگردانده می شود را مدیریت می کند، بنابراین محتوای زیر را در فایل کنترلر مذکور قرار دهید:

app/Http/Controllers/MyController.php

<?php
   
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Exports\UsersExport;
use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;
  
class MyController extends Controller
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function importExportView()
    {
       return view('import');
    }
   
    /**
    * @return \Illuminate\Support\Collection
    */
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
   
    /**
    * @return \Illuminate\Support\Collection
    */
    public function import() 
    {
        Excel::import(new UsersImport,request()->file('file'));
           
        return back();
    }
}

گام هشتم: ایجاد فایل Blade

در آخرین مرحله باید یک فایل Blade برای طرح یا layout بسازیم ، پس یک فایل  blade با نام import.blade.php در مسیر “resources/views/import.blade.php” ایجاد می کنیم و کدهای طراحی خود را در آن می نویسیم:

resources/views/import.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6 - تجاری اپ</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />

    <style>
        body
        {
            direction: rtl;
            text-align: right;
        }
    </style>
</head>
<body>

<div class="container">
    <div class="card bg-light mt-3">
        <div class="card-header">
            آموزش ایمپورت و اکسپورت کردن فایل اکسل و csv در لاراول 6 - تجاری اپ
        </div>
        <div class="card-body">
            <form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <input type="file" name="file" class="form-control">
                <br>
                <button class="btn btn-success">ایمپورت داده های کاربر</button>
                <a class="btn btn-warning" href="{{ route('export') }}">اکسپورت داده های کاربر</a>
            </form>
        </div>
    </div>
</div>

</body>
</html>

اکنون می توانید برنامه لاراول 6 خود را بررسی کنید.بنابراین برای این کار دستور زیر را اجرا کنید:

php artisan serve

اکنون می توانید URL زیر را در مرورگر خود باز کنید :

http://localhost:8000/importExportView

امیدوارم این آموزش برای شما مفید بوده باشد…

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *