Laravel 開発: Laravel Excel と PHPOffice を使用して Excel ファイルを読み書きする方法?

PHPz
リリース: 2023-06-13 17:57:58
オリジナル
2772 人が閲覧しました

ビジネスや金融の分野で Excel ファイルが広く使用されるようになったことで、Excel ファイルを Web アプリケーションに統合することは、開発者に必要なスキルの 1 つになりました。 Laravel は人気のある PHP フレームワークであるため、そのエコシステムには Excel ファイルの読み書きに役立つパッケージが多数あります。この記事では、Laravel Excel と PHPOffice ライブラリを使用して、Laravel アプリケーションで Excel ファイルを読み書きする方法を紹介します。

Laravel Excel とは何ですか?

Laravel Excel は、Laravel フレームワーク用に開発された強力な Excel 処理ツールです。このツールは、Excel ファイルのインポートとエクスポートを簡単に行うのに役立つ使いやすい API を提供します。このツールの主な利点の 1 つは、Excel ソフトウェアに依存せずに Excel ファイルを直接操作できることです。

Laravel Excel のインストールは Composer を通じて実行できます。ターミナルで Laravel プロジェクトのディレクトリに移動し、次の Composer コマンドを実行します。

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

このコマンドは、Laravel Excel の最新バージョンを Packagist からダウンロードし、インストール プロセスを自動的に完了します。

Laravel Excel を使用して Excel ファイルをエクスポートするには?

Laravel Excel は、新しい Excel ファイルを作成したり、既存の Excel ファイルを開いて編集したりできるプロキシ クラスである Excel クラスを提供します。このクラスを使用して、Laravel アプリケーションで Excel ファイルをエクスポートできます。

プロジェクトに新しい Excel ファイルを作成します。Laravel Excel が提供する次のテンプレートを使用できます:

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsWithHeadings;

class ExampleExport implements FromCollection, WithHeadings
{
    public function headings(): array
    {
        return [
            'ID',
            'Name',
            'Email',
            'Phone',
        ];
    }

    /**
    * @return IlluminateSupportCollection
    */
    public function collection()
    {
        return User::select('id', 'name', 'email', 'phone')->get();
    }
}
ログイン後にコピー

上記のコードでは、ExampleExport という名前のクラスを定義します。このクラスは、Excel ファイルの生成に必要なメソッドを提供する FromCollection インターフェイスと WithHeadings インターフェイスを使用します。

Heading() メソッドでは、Excel ファイルのヘッダーを定義します。これらのヘッダーは Excel ワークシートの最初の行にリストされます。 collect() メソッドでは、データベースからユーザー レコードを取得し、クラスを呼び出したコントローラーにそれを返します。

Excel ファイルをエクスポートするには、次のようにコントローラー メソッドで ExampleExport をインスタンス化します。

public function export()
{
    return Excel::download(new ExampleExport, 'users.xlsx');
}
ログイン後にコピー

上記のコードでは、Laravel Excel が提供する download() メソッドを使用して、ExampleExport からエクスポートします。エクセルファイル。このメソッドには 2 つのパラメータが必要です。最初のパラメータは ExampleExport インスタンス、2 番目のパラメータは Excel ファイル名です。

ブラウザでエクスポート メソッドの URL にアクセスすると、users.xlsx ファイルをダウンロードするように求められます。

Laravel Excel を使用して Excel ファイルをインポートするにはどうすればよいですか?

Excel ファイルを読み取り、そのデータをデータベースにインポートする場合、Laravel Excel が提供する import() メソッドを使用できます。このメソッドは、ファイル オブジェクト、タスク コールバック、およびワークシート名という 3 つのパラメーターを受け入れます。

Excel ファイルをインポートする方法を示すために、以下に示すように UserImport というクラスを作成します。

<?php

namespace AppImports;

use AppUser;
use MaatwebsiteExcelConcernsToModel;

class UserImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'phone' => $row[2],
        ]);
    }
}
ログイン後にコピー

上記のコードでは、ToModel インターフェイスを使用して UserImport クラスを実装しました。 ToModel インターフェイスは、Excel データの各行をモデル オブジェクトに変換する必須の model() メソッドを提供します。上記のコードでは、Excel ファイルから最初の 3 つの列を解析し、それらを使用して新しいユーザー レコードを作成しました。

以下に示すように、コントローラーで import() メソッドを使用して Excel ファイルをインポートします。

public function import(Request $request)
{
    $file = $request->file('file');
    Excel::import(new UserImport, $file);
    return redirect()->back()->with('success', 'Excel file imported successfully.');
}
ログイン後にコピー

上記のコードでは、アップロードされた Excel ファイル オブジェクトを取得し、Laravel Excel のオブジェクトに渡します。 import( ) メソッドを使用して、UserImport クラスにインポートします。インポートが成功すると、システムは「Excel ファイルは正常にインポートされました」という成功メッセージを含むリダイレクト応答をユーザーに送信します。

PHPOffice ライブラリを使用して Excel ファイルを読み書きするにはどうすればよいですか?

PHPOffice は、Excel、Word、PowerPoint など、さまざまな種類の Office ファイルの読み取りと書き込みに使用される PHP ライブラリです。 PHPOffice は、Laravel Excel とは異なり、特定のフレームワーク用に開発されていないため、あらゆる PHP アプリケーションで使用できます。

PHPOffice をインストールする前に、PHP Zip 拡張機能と PHP XML 拡張機能がインストールされていることを確認する必要があります。

Composer を使用して PHPOffice のスプレッドシート ライブラリをインストールするには、次のコマンドを使用できます:

composer require phpoffice/phpspreadsheet
ログイン後にコピー

新しい Excel ファイルを作成するには、次のコードを使用できます:

<?php

use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
$sheet->setCellValue('B1', 'This is PHPOffice.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');
ログイン後にコピー

上記のコードでは、まず新しいスプレッドシートを作成し、その最初の行の最初の 2 列に「Hello World!」セルと「This is PHPOffice.」セルを追加します。次に、スプ​​レッドシートを hello.xlsx ファイルに保存します。

既存の Excel ファイルを開いて編集するには、次のコードを使用できます。

<?php

use PhpOfficePhpSpreadsheetIOFactory;

$spreadsheet = IOFactory::load('hello.xlsx');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('C1', 'This cell has been added.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');
ログイン後にコピー

上記のコードでは、IOFactory クラスを使用して既存の Excel ファイルをディスクからロードします。次に、ファイルのアクティブなワークシートを開き、そこに新しいセルを追加しました。最後に、更新内容を元のファイルに保存します。

結論

この記事では、Laravel Excel と PHPOffice ライブラリを使用して、Laravel アプリケーションで Excel ファイルを読み書きする方法を紹介しました。 Laravel Excel を使用して Excel ファイルをエクスポートおよびインポートする方法と、PHPOffice ライブラリを使用して既存の Excel ファイルを作成、開き、編集する方法を学びました。これらのテクニックを使用すると、Excel ファイルを Laravel アプリケーションに簡単に統合できるようになります。

以上がLaravel 開発: Laravel Excel と PHPOffice を使用して Excel ファイルを読み書きする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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