LaravelでExcelをインポートおよびエクスポートする方法

WBOY
リリース: 2023-05-20 20:42:35
オリジナル
4146 人が閲覧しました

Laravel は一般的に使用される PHP 開発フレームワークであり、迅速な開発と容易なメンテナンスの特徴を備えています。実際の開発では、データのインポートとエクスポート、具体的には Excel ファイルのインポートとエクスポートが発生することがよくあります。 Laravel はデータのインポートとエクスポートをどのように実装しますか?この記事では、Laravelを使用してExcelファイルをインポートおよびエクスポートする方法を紹介します。

1. Laravel Excel のインストール

Laravel Excel は、Excel ファイルのインポートとエクスポートを簡単に行うことができる PHPExcel のパッケージです。したがって、インポートとエクスポートを実装する前に、まず Laravel Excel をインストールする必要があります。

Composer を通じてインストールするには、次のコマンドを実行します:

composer require maatwebsite/excel
ログイン後にコピー

インストールが完了したら、次の内容を config/app.php に追加する必要があります:

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

'aliases' => [
    // ...
    'Excel' => MaatwebsiteExcelFacadesExcel::class,
]
ログイン後にコピー

2. 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 ファイルを生成します。

3. 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 を

// でデータベースに挿入できます。$users はデータベース に挿入できます。

4. 概要

Laravel Excel はデータベースのような操作を提供し、Excel ファイルのインポートとエクスポートを非常に簡単にします。 Laravel Excel は Eloquent モデルとシームレスに連携し、CSV、PDF、HTML などの他のファイル形式もサポートします。上記の方法に従って Laravel Excel をインストールし、Laravel でデータをインポートおよびエクスポートするための適切なモデルを定義するだけです。

以上がLaravelでExcelをインポートおよびエクスポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート