laravel maatwebsite/excel3.1 導入詳解


使用"maatwebsite/excel": "^3.1" 導入

 

官方文檔地址

https://docs.laravel-excel.com/3.1/imports/batch-inserts.html

 

 

1.安裝composer包

composer require maatwebsite/excel

 

2. 在 config/app.php 中注冊服務提供者到 providers 數組:

Maatwebsite\Excel\ExcelServiceProvider::class,

 

3.在 config/app.php 中注冊到 aliases 數組:

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

 

4.生成 Laravel Excel 的配置文件:(發布)

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

 

至此,完成了composer包的安裝步驟

 

5.新建一個導入文件

php artisan make:import 文件名稱 --model=Model地址

此操作會在app/下創建一個Import目錄並創建一個文件

.
├── app
│   ├── Imports
│   │   ├── CompanyUserImport.php
│ 
└── composer.json

我這里需要導入的數據需要自己處理一下,所以使用的ToCollection的方法

app/Import/CompanyUserImport.php代碼如下:

<?php

namespace App\Imports;

use App\Models\Company\CompanyUserModel;
use Maatwebsite\Excel\Concerns\ToCollection;
use Illuminate\Support\Collection;

class CompanyUserImport implements ToCollection
{
    /**
     * 使用 ToCollection
     * @param array $row
     *
     * @return User|null
     */
    public function collection(Collection $rows)
    {
        foreach ($rows as $row) 
        {
            // dump($row);
            // 處理數據
        }
        CompanyUserModelDB::insert($data);
    }

    public function createData($rows)
    {
        //todo
    }
}
    

 

控制器調用

<?php

namespace App\Http\Controllers\Company;


use Illuminate\Http\Request;
use App\Imports\CompanyUserImport;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;

class CompanyUserController extends Controller
{

    /**
     * excel批量導入成員
     *
     * @param Request $request
     * @return void
     */
    public function importMember(Request $request)
    {

        Excel::import(new CompanyUserImport, request()->file('excelfile'));
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM