コレクションやクエリ、BladeビューをExcelまたはCSVにエクスポートし、スプレッドシートをEloquentモデルにインポートできる、PhpSpreadsheetのLaravelラッパーです。
rap2hpoutre/fast-excel
OpenSpoutを基盤とする、xlsx・ods・csvファイルを高速かつ省メモリで読み書きできるLaravelパッケージ。
代替できる製品:Laravel Excel
- スター
- 2,393
- フォーク
- 271
- 未解決の Issue
- 3
- 最終コミット
- 9 日前
これは何?
FastExcelは、表計算データのインポートとエクスポートに使えるLaravelパッケージです。OpenSpoutライブラリをLaravelになじむシンプルなAPIでラップしており、Eloquentモデル、クエリの結果、コレクション、ジェネレーターをxlsx・ods・csvファイルにエクスポートできます。また、これらの形式のファイルをコレクションに取り込んだり、行ごとのコールバックで処理したりできます。
メモリ使用量を抑えることを重視しています。カーソル、ジェネレーター、importLazy()のような遅延ソースを渡すと、行を1件ずつストリーム処理するため、行数が増えてもピーク時のメモリ使用量はおおむね一定に保たれます。実体化済みのコレクションは最初にすべてメモリへ読み込むため、大規模なデータセットではPHPのmemory_limitを超える場合があります。このプロジェクトは、機能を絞った軽量なLaravel Excelの代替として、シンプルなインポート・エクスポート処理を想定しています。
基本的な入出力に加えて、複数シート、ヘッダーと行のスタイル設定、列幅の指定、先頭のゼロを保持するための文字列型セル、エクスポート時の行のスキップ、数式インジェクション対策のための数式のエスケープに対応しています。
主な機能
- 01Eloquentモデル、クエリの結果、コレクション、ジェネレーターをxlsx・ods・csvにエクスポートする。
- 02スプレッドシートをコレクションにインポートするか、コールバックで行ごとに処理する。
- 03カーソル、ジェネレーター、importLazy()で大規模なインポート・エクスポートをストリーム処理し、メモリ使用量を抑える。
- 04複数のシートを読み書きし、インデックスまたは名前でシートを選択する。
- 05ヘッダーと行のスタイルを設定し、xlsxとodsの列幅を明示的に指定する。
- 06値をテキストセルとして扱うか、数式インジェクションを防ぐために数式をエスケープする。
ユースケース
- Laravelアプリで大規模なユーザー表や注文表を、メモリを使い果たさずにExcelへエクスポートする。
- 顧客や商品のスプレッドシートを、行ごとのコールバックでデータベーステーブルにインポートする。
- LaravelのクエリからCSVやExcelのレポートを生成し、コントローラーからダウンロードできるようにする。
- シンプルなインポート・エクスポート処理で、機能の重いLaravel Excelの構成を置き換える。
クイックスタート
- 1
Composer でパッケージをインストールする
composer require rap2hpoutre/fast-excel - 2
コレクションまたはモデルを XLSX ファイルにエクスポートする
使う前に知っておきたいこと
- PHP と Laravel が必要なため、そのエコシステム外では単独のライブラリとして動作しません。
収録されている特集
トピック
よくある質問
- fast-excel とは?
- OpenSpoutを基盤とする、xlsx・ods・csvファイルを高速かつ省メモリで読み書きできるLaravelパッケージ。 FastExcelは、表計算データのインポートとエクスポートに使えるLaravelパッケージです。OpenSpoutライブラリをLaravelになじむシンプルなAPIでラップしており、Eloquentモデル、クエリの結果、コレクション、ジェネレーターをxlsx・ods・csvファイルにエクスポートできます。また、これらの形式のファイルをコレクションに取り込んだり、行ごとのコールバックで処理したりできます。
- fast-excel は無料で使えますか?ライセンスは?
- fast-excel は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- fast-excel は今もメンテナンスされていますか?
- 活発にメンテナンス中。fast-excel の最終コミットは 2026年10月29日 です。
- fast-excel は何に使えますか?
- Laravelアプリで大規模なユーザー表や注文表を、メモリを使い果たさずにExcelへエクスポートする。 顧客や商品のスプレッドシートを、行ごとのコールバックでデータベーステーブルにインポートする。 LaravelのクエリからCSVやExcelのレポートを生成し、コントローラーからダウンロードできるようにする。 シンプルなインポート・エクスポート処理で、機能の重いLaravel Excelの構成を置き換える。
- fast-excel のインストール方法は?
- Composer でパッケージをインストールする: composer require rap2hpoutre/fast-excel コレクションまたはモデルを XLSX ファイルにエクスポートする
- fast-excel はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/rap2hpoutre/fast-excel
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
大容量ファイルの処理に適した、ExcelやCSVの読み書きに使える省メモリなJavaライブラリ。
Microsoft Officeを使わずにExcelのXLSX、XLSM、XLTX、XLTM、XLAMファイルを読み書きできる純Goライブラリ。
Rust製の開発中スプレッドシートエンジン。xlsxの読み書きに対応し、PythonおよびJavaScript(wasm)向けのバインディングを備えています。
GoのExcelizeライブラリをWebAssemblyとJavaScriptに移植し、Node.jsやブラウザーでExcel XLSX、XLSM、XLTXなどのスプレッドシートファイルを読み書きできます。
GoのExcelizeライブラリをPythonに移植した、Excelスプレッドシートファイル(XLSX、XLSM、XLTX、XLTM、XLAM)の読み書き用ライブラリです。