ホームページ  >  記事  >  PHPフレームワーク  >  Laravel 開発: Laravel Excel を使用して Excel ファイルをインポートおよびエクスポートするにはどうすればよいですか?

Laravel 開発: Laravel Excel を使用して Excel ファイルをインポートおよびエクスポートするにはどうすればよいですか?

王林
王林オリジナル
2023-06-15 16:13:313119ブラウズ

Laravel 開発: Laravel Excel を使用して Excel ファイルをインポートおよびエクスポートするにはどうすればよいですか?

インターネットの急速な発展に伴い、特に企業データ管理において、データ処理の重要性がますます高まっています。 Excel ファイルは、データを簡単に保存、編集、計算、分析できるため、企業オフィスにとって不可欠なツールの 1 つとなっています。 Laravel は広く使われている PHP フレームワークであり、Laravel Excel は Laravel 用に開発された Excel ファイル操作拡張パッケージであり、Excel ファイルのインポートとエクスポートを簡単に行うことができます。

この記事ではLaravel Excelの使い方を詳しく紹介します。この記事では、Laravel Excel をインストールし、Excel ファイルをインポートおよびエクスポートする方法を学びます。

1. Laravel Excel のインストール

ターミナルの Composer を介して Laravel Excel をインストールします

composer require maatwebsite/excel

Laravel バージョン 5.5 未満を使用している場合は、configure/app を行う必要があります。 php 次の 2 つのサービス プロバイダーがファイル内で構成されています:

MaatwebsiteExcelExcelServiceProvider::class,
'Excel' => MaatwebsiteExcelFacadesExcel::class,

Laravel バージョン 5.5 以降を使用している場合、サービス プロバイダーを手動で追加する必要はありません。これらのサービス プロバイダーは自動的に追加されます。構成に。

ターミナルで Artisan コマンドを使用して公開します:

php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider"

これにより、次の構成ファイルとテンプレート ファイルが自動的に生成されます:

config/excel.php
resources/views/vendor/excel

2. Laravel Excel を構成する

設定ファイルexcel.phpには、Laravel Excelのすべての設定オプションが含まれています。これらのオプションは、.env ファイルで直接定義することも、config/excel.php ファイルで構成することもできます。以下に、考えられるすべてのオプションについて詳しく説明します。

'default_driver' => 'local',

オプション「default_driver」は、使用するデフォルトのドライバーを指定します。ここには、local と ftp の 2 つのオプションがあります。

'cache' => [
    'enabled' => true,
    'driver' => 'laravel',
],

オプション "cache" はキャッシュ オプションを指定します。キャッシュすると、特に大量のデータを処理する場合に速度が向上します。キャッシュが有効な場合は、「cache_driver」を「laravel」または「memcached」に設定します。

'temp_path' => sys_get_temp_dir(),

Options temp_path は、一時ファイルの保存に使用されるファイル システム パスを指定します。

'csv' => [
    'delimiter' => ',',
    'enclosure' => '"',
    'escape_character' => '\',
    'input_encoding' => 'UTF-8',
    'output_encoding' => 'UTF-8',
    'use_bom' => false,
],

オプション「csv」を使用すると、CSV のインポートおよびエクスポートのオプションを構成できます。これには主に次のオプションが含まれます:

delimiter: カンマ、セミコロン、タブなどの区切り文字。

enclosure: 列の囲み記号。

escape_character: エスケープ文字。

input_encoding: 入力エンコーディング。

output_encoding: 出力エンコーディング。

use_bom: Bom バイトオーダーを使用するかどうか。

'exports' => [
    'force_resave' => false,
    'ignore_empty' => false,
    'pre_calculate_formulas' => false,
    'maximum_recursion' => 50,
],

オプション「exports」を使用すると、主に次のオプションを含むエクスポート オプションを構成できます:

force_resave: 強制的に保存するかどうか。

ignore_empty: 空のセルを無視するかどうか。

pre_calculate_formulas: 数式を事前計算するかどうか。

maximum_recursion: 再帰の最大レベル数。

3. Excel ファイルのエクスポート

Laravel Excel は、Excel ファイルのエクスポートを適切にサポートします。次に、Laravel Excel を使用してデータをエクスポートする方法を説明します。

まず、コントローラー ファイルを開き、新しい Excel ファイルを作成してデータをエクスポートします。

<?php

namespace AppHttpControllers;

use MaatwebsiteExcelFacadesExcel;
use AppExportsUsersExport;

class ExportController extends Controller
{
    public function export()
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

上記のコントローラー メソッドでは、Excel::download() メソッドを使用して Excel ファイルを作成します。ファイル。このメソッドは 2 つのパラメータを受け入れます:

  • 最初のパラメータ users はエクスポートされたデータになります。 toExcel() メソッドを使用して UsersExport 補助クラスを作成することにより、データ エクスポートを実装します。
  • 2 番目のパラメータはファイル名であり、これは必須です。

UsersExport ファイルの内容は次のとおりです。

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;
use AppUser;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::select('id', 'name', 'email')->get();
    }
}

このクラスは、MaatwebsiteExcelConcernsFromCollection インターフェイスを実装する必要があります。 FromCollection がコレクション クラスを返し、get() メソッドがクラスに格納されているすべてのユーザーを返すことがわかります。

これでLaravel Excelのエクスポート操作は完了しました。

4. Excel ファイルのインポート

Laravel Excel は、Excel ファイルのインポート操作に対する非常に優れたサポートも提供します。次に、Laravel Excel を使用して Excel ファイルからデータをインポートする方法を説明します。

まず、コントローラー ファイルを開いて、Excel ファイルのデータをデータベースにインポートします。

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppImportsUsersImport;

class ImportController extends Controller
{
    public function import(Request $request)
    {
        $file = $request->file('file');
        Excel::import(new UsersImport, $file);
        return redirect('/')->with('success', 'Excel 数据已成功导入!');
    }
}

上記のコントローラー メソッドでは、Excel::import() メソッドを使用して、エクセルファイル。このメソッドは 2 つのパラメータを受け入れます。

  • 最初のパラメータは UsersImport で、Excel ファイルをデータベースにインポートするクラスです。
  • 2 番目のパラメータは、インポートするデータを含む、インポートする Excel ファイルです。

ここで、UsersImport クラスを見てみましょう:

<?php

namespace AppImports;

use MaatwebsiteExcelConcernsToModel;
use AppUser;

class UsersImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'password' => bcrypt($row[2])
        ]);
    }
}

ご覧のとおり、このクラスは、model() メソッドを定義する MaatwebsiteExcelConcernsToModel インターフェイスを実装する必要があります。このメソッドは、新しいユーザーの属性を決定するために使用されます。

model() メソッドでは、配列のデータ行情報を使用してユーザーの属性を保存します。ここでは、Excel ファイルの 1 行目がユーザー名、2 行目が電子メール アドレス、3 行目がパスワードであると仮定します。

これは、Laravel Excel を使用して Excel ファイルをインポートおよびエクスポートする方法です。 Laravel Excel の基本的な使い方と高度な機能については理解できたと思います。この記事があなたのLaravel学習に役立つことを願っています。

以上がLaravel 開発: Laravel Excel を使用して Excel ファイルをインポートおよびエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。