Repolode
rap2hpoutre

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. 1

    Composer でパッケージをインストールする

    composer require rap2hpoutre/fast-excel
  2. 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 の数値は毎日更新されます。

関連プロジェクト