Spout
ODS、XLSX、CSV ファイル用の PHP ライブラリ
Excel® (XLSX、CSV) および OpenOffice™ (ODS) からスプレッドシートを作成、読み取り、操作するためのオープン ソース PHP ライブラリ。
スパウトとは?
スパウトは、ODS、XLSX、CSV ファイルの読み取りと書き込みなど、スプレッドシート操作タスクでソフトウェア開発者を支援するオープン ソースの PHP ライブラリです。スパウトを使用すると、開発者は、セル、行、および境界線のスタイル設定を使用してゼロからスプレッドシートを作成したり、既存のファイルを読み込んで編集したりできます。
スパウトは、さまざまな種類のスプレッドシートを読み取って作成するためのシンプルで統合された API を提供するため、開発者にとって使いやすいです。また、コードの変更を最小限に抑えて、あるタイプのスプレッドシートから別のタイプのスプレッドシートに切り替えることもできます。メモリ使用量を非常に低く抑えながら、小さなスプレッドシート ファイルと非常に大きなスプレッドシート ファイルを処理できます。スプレッドシート ファイルの処理に必要なメモリは 3MB だけです。
スパウト PHP ライブラリのインストール方法
スパウトには PHP バージョン 7.1 以降が必要です。前提条件が満たされたら、Composer から Spout をインストールします。
Composer からスパウトをインストールする
$ composer require box/spout
ODS、XLSX、CSV を読み書きするための PHP ライブラリ
スパウトを使用すると、ソフトウェア開発者は 3 つの一般的な形式でスプレッドシート ファイルをゼロから作成できます。読み取り中、Spout はファイル拡張子に基づいてスプレッドシート リーダーの種類を推測します。拡張子が標準でない場合は、特定のリーダーを直接作成できます。
PHP 経由で ODS を読み取る
- ODS ファイル形式のリーダーを作成する
- ODS ファイル パスを load メソッドに渡して読み込みます
- getSheetIterator() を介して ODS ワークシートを反復処理します
- getRowIterator() を使用してワークシートの行を反復処理する
- ODS 行のセルを取得して読み書きする
スパウト経由で ODS を読み取る - PHP Excel ライブラリ
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
$reader = ReaderEntityFactory::createODSReader('/path/to/file.ods');
$reader->open($filePath);
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
// do stuff with the row
$cells = $row->getCells();
...
}
}
$reader->close();
PHP 経由で既存のスプレッドシートにデータを追加する
スパウトを使用すると、開発者は既存のスプレッドシートにデータを追加して更新することができます。新しいデータを既存のスプレッドシートに追加することは、非常に一般的な方法です。スパウト API は、大きなスプレッドシートを操作する際のメモリの問題を回避するために、完全なスプレッドシート表現をメモリに保持しません。スプレッドシートを変更するには、既存のものと同様の新しいインスタンスを作成し、必要なデータを新しいスプレッドシートに追加します。
特定のシートからのデータの読み取り
スパウト API を使用すると、PHP 開発者はスプレッドシート内の特定のシートにアクセスしてデータを読み取ることができます。通常、スプレッドシートには複数のワークシートが含まれています。ユーザーが 1 つのシートからのみデータを読み取り、他のシートをスキップすることに関心がある場合。ユーザーは、スプレッドシートの名前と位置を知っているだけで済みます。