ホームページ > 記事 > PHPフレームワーク > Laravel 開発: Laravel Excel と Spout を使用して Excel ファイルを処理する方法?
Laravel は、開発者が Web アプリケーションを迅速に構築できるようにするための多くの機能と拡張機能を提供する、人気のある PHP 開発フレームワークです。一般的なタスクの 1 つは Excel ファイルの処理です。この記事では、Laravel Excel と Spout を使用して Excel ファイルを処理する方法を学びます。
Laravel Excel は、Excel ファイルのインポートおよびエクスポート用の人気のある拡張機能で、Excel ファイルの読み取り、書き込み、操作のためのシンプルで使いやすいインターフェイスを提供します。 Spout は、大きな Excel ファイルの読み書き用に設計された高速な PHP ライブラリです。
まず、これらの拡張機能をインストールする必要があります。 Laravel 5.5 以降では、Laravel Excel は次のコマンドでインストールできます:
composer require maatwebsite/excel
Spout の場合、次のコマンドでインストールできます:
composer require box/spout
これらの拡張機能をインストールすると、これらを使用して Excel ファイルを処理できるようになります。
Excel ファイルを読み取るには、Laravel Excel が提供する Excel クラスを使用する必要があります。以下は、Excel ファイル内のすべてのセル データを読み取り、2 次元配列を返す簡単な例です。
use MaatwebsiteExcelFacadesExcel; $rows = Excel::load('example.xlsx')->all()->toArray();
この例では、all()
メソッドは A # を返します。 ##Collection Excel ファイル内のすべての行と列のデータを含むオブジェクト。
toArray()メソッドは、Collection オブジェクトを単純な 2 次元配列に変換します。例:
[ [ "Name" => "John Doe", "Email" => "johndoe@example.com", "Age" => 30 ], [ "Name" => "Jane Doe", "Email" => "janedoe@example.com", "Age" => 28 ], // ... ]
get() メソッドを使用して、特定の行またはリスト。たとえば、データの最初の列を取得するには、次のコードを使用できます。
$column = Excel::load('example.xlsx')->get()[0];Excel ファイルに書き込むデータを Excel ファイルに書き込むには、Laravel Excel のライターを使用する必要があります。クラス。データを含む Excel ファイルを作成する簡単な例を次に示します。
use MaatwebsiteExcelFacadesExcel; use MaatwebsiteExcelWriter; use MaatwebsiteExcelClassesPHPExcel; Excel::create('example', function(Writer $writer) { $writer->setTitle('My First Excel'); $writer->setCreator('John Doe'); $writer->setDescription('A demonstration of using Laravel Excel'); $writer->sheet('Sheet1', function($sheet) { $sheet->fromArray([ ['Name', 'Email', 'Age'], ['John Doe', 'johndoe@example.com', 30], ['Jane Doe', 'janedoe@example.com', 28] ]); }); })->download('xlsx');この例では、
create() メソッドを使用して新しい Excel ファイルを作成します。コールバック関数では、Excel ファイルのタイトル、作成者、説明を設定できます。
sheet()メソッドは新しいワークシートを作成し、そこにデータを書き込みます。最後に、
download() メソッドは、応答として Excel ファイルをダウンロードします。この場合、ファイルは XLSX 形式でダウンロードされます。
use BoxSpoutReaderReaderFactory; use BoxSpoutCommonType; $reader = ReaderFactory::create(Type::XLSX); $reader->open('example.xlsx'); foreach ($reader->getSheetIterator() as $sheet) { foreach ($sheet->getRowIterator() as $row) { $data[] = $row->toArray(); } } $reader->close();この例では、
ReaderFactory クラス ##Object を通じて
$reader# を作成しました。 , Excel ファイルを読み取るために使用されます。 getSheetIterator()
メソッドと getRowIterator()
メソッドを通じて、ワークシートと行のイテレータを取得でき、toArray()
メソッドを使用して取得できます。セルデータ。 $reader->close()
このメソッドは、Excel ファイルを閉じるために使用されます。 同様に、Spout の
クラスと Sheet
クラスを使用して、データを Excel ファイルに書き込むことができます。 <pre class='brush:php;toolbar:false;'>use BoxSpoutWriterWriterFactory;
use BoxSpoutCommonType;
$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile('example.xlsx');
$writer->addRow(['Name', 'Email', 'Age']);
$writer->addRow(['John Doe', 'johndoe@example.com', 30]);
$writer->addRow(['Jane Doe', 'janedoe@example.com', 28]);
$writer->close();</pre>
この例では、
クラスを使用して $writer
オブジェクトを作成し、openToFile()
を通じて Excel ファイルを開きます。方法。 addRow()
メソッドを使用してワークシートにデータを追加し、最後に close()
メソッドを使用して Excel ファイルを閉じます。 結論
この記事では、Laravel Excel と Spout を使用して Excel ファイルを処理する方法を学びました。 Laravel Excel は、シンプルなインターフェイスを通じて Excel ファイルの読み取り、書き込み、変更を行うための便利な方法を提供します。一方、Spout は、大きな Excel ファイルの読み書き用に設計された、より高速な PHP ライブラリです。これらのツールは Excel ファイルの処理を大幅に簡素化し、開発者が Excel データをより簡単に処理および管理できるようにします。
以上がLaravel 開発: Laravel Excel と Spout を使用して Excel ファイルを処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。