首頁 > php框架 > Laravel > 主體

laravel如何做導入匯出excel

WBOY
發布: 2023-05-20 20:42:35
原創
4148 人瀏覽過

Laravel 是一款常用的 PHP 開發框架,它具有快速開發、易於維護等功能。在實際開發中,常常牽涉到資料的匯入和匯出,更具體一些,就是 Excel 檔案的匯入和匯出。 Laravel 如何實現資料的匯入和匯出呢?本文將介紹如何透過 Laravel 實現 Excel 檔案的匯入和匯出。

一、安裝 Laravel Excel

Laravel Excel 是針對 PHPExcel 的封裝,它可以輕鬆實現 Excel 檔案的匯入和匯出。因此,在實作匯入和匯出之前,我們需要先安裝 Laravel Excel。

透過Composer 進行安裝,執行以下命令:

composer require maatwebsite/excel
登入後複製

安裝完成後,需要在config/app.php 中加入以下內容:

'providers' => [
    // ...
    MaatwebsiteExcelExcelServiceProvider::class,
],

'aliases' => [
    // ...
    'Excel' => MaatwebsiteExcelFacadesExcel::class,
]
登入後複製

二、Excel 檔案匯出

首先,我們來看如何匯出Excel 檔案。 Laravel Excel 提供了一種類似於定義資料庫資料模型的方式來定義 Excel 檔案的匯出。我們可以透過一個 Excel 範本來定義匯出的 Excel 檔案內容,然後將資料填入範本中。以下是具體的實作方法:

1.定義Excel 檔案範本

在專案的根目錄下執行以下指令:

php artisan make:export UsersExport --model=User
登入後複製

該指令將在app/Exports 目錄下產生一個名為UsersExport 的類別。此類實作了 FromModel 接口,用於將資料從模型中匯出到 Excel 檔案。

2.填入資料

定義 Excel 檔案範本後,我們需要透過程式碼向其中填入資料。程式碼實作如下:

namespace AppHttpControllers;

use AppExportsUsersExport;
use AppHttpControllersController;
use MaatwebsiteExcelFacadesExcel;

class UsersController extends Controller
{
    public function export()
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}
登入後複製

3.產生 Excel 檔案

在完成資料填入後,就可以產生 Excel 檔案了。執行匯出操作,程式碼實作如下:

Excel::download(new UsersExport, 'users.xlsx');
登入後複製

以上程式碼將會產生一個名為 users.xlsx 的 Excel 檔案。

三、Excel 檔案匯入

匯入 Excel 檔案與匯出 Excel 檔案類似,同樣需要有資料模型,用於將 Excel 檔案中的資料匯入到資料庫中。以下是具體的實作方法:

1.定義Excel 檔案範本

首先,需要定義一個ContractsFromView 介面來實現資料填充,程式碼實作如下:

namespace AppImports;

use IlluminateContractsViewView;
use MaatwebsiteExcelConcernsFromView;

class UsersImport implements FromView
{
    private $users;

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

    public function view(): View
    {
        return view('exports.users', [
            'users' => $this->users
        ]);
    }
}
登入後複製

在實現介面之後,需要在resources/views/exports 目錄下定義一個名為users.blade.php 的文件,程式碼如下:

<table>
    <thead>
    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Gender</th>
    </tr>
    </thead>
    <tbody>
    @foreach($users as $user)
        <tr>
            <td>{{ $user['name'] }}</td>
            <td>{{ $user['email'] }}</td>
            <td>{{ $user['gender'] }}</td>
        </tr>
    @endforeach
    </tbody>
</table>
登入後複製

這個範本將會把使用者資料填入一個HTML 表格中。

2.導入Excel 檔案

在定義資料模型之後,就可以透過Laravel Excel 的Excel::import函數將資料匯入到資料庫中了,具體程式碼如下:

namespace AppHttpControllers;

use AppImportsUsersImport;
use MaatwebsiteExcelFacadesExcel;

class UsersController extends Controller
{
    public function import()
    {
        $file = request()->file('file');

        $users = Excel::toArray(new UsersImport, $file);

        // 可以在此处将 $users 插入数据库
    }
}
登入後複製

在上述程式碼中,我們首先透過輸入框選擇Excel 文件,然後取得Excel 文件,將其轉換為陣列類型。對於導入的數據,我們可以在 // 可以在此處將 $users 插入資料庫 處將其插入到資料庫中。

四、總結

Laravel Excel 已經為我們提供了類似於資料庫操作的方式,讓 Excel 檔案匯入和匯出變得非常簡單。 Laravel Excel 可以與 Eloquent 模型無縫協作,同時也支援其他格式的文件,例如 CSV、PDF 和 HTML。我們只需要按照上述方法安裝 Laravel Excel 並定義合適的模型即可在 Laravel 中實現資料的匯入和匯出。

以上是laravel如何做導入匯出excel的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板