無料PHPライブラリでExcel、CSV、& ODSファイルをインポート・エクスポート

ソフトウェア開発者がMS Excelファイルのインポートとエクスポートを可能にするオープンソースPHP APIです。その機能、利点、コード例を学び、大規模データセットを効率的に処理しましょう。

Fast-Excelとは何ですか?

Fast-Excel は、Laravel アプリケーションにおける Excel および CSV のインポート/エクスポート操作を簡素化することを目的とした軽量な PHP パッケージです。OpenSpout をベースに構築されており、速度、低メモリ使用量、開発者に優しい構文に重点を置いています。より重厚なスプレッドシートライブラリとは異なり、Fast-Excel は不要な複雑さなしにシンプルで効率的なスプレッドシート処理が必要なプロジェクトに最適です。XLSX、CSV、ODS ファイルのエクスポートとインポートをサポートし、メモリ消費を驚くほど低く抑えます。

Fast-Excel は、メモリ制限に悩まされることなく大規模な Excel、CSV、または ODS ファイルを処理する必要がある開発者に特に有用です。従来のライブラリはデータセット全体をメモリにロードすることが多いですが、Fast-Excel はストリーミング技術を使用してデータを効率的に扱います。このライブラリは、データベースレコードをスプレッドシートへエクスポートしたり、ユーザーデータやレポートをインポートしたり、大規模なレポートを動的に生成したり、Laravel アプリでの Excel 操作を簡素化したりする際に広く利用されています。クリーンな API と最小限の設定により、Fast-Excel は開発時間を短縮しながらパフォーマンスを向上させます。

Previous Next

Fast-Excelの開始方法

Fast-Excel をプロジェクトにインストールする推奨方法は Composer を使用することです。スムーズなインストールのために、以下のコマンドをご利用ください。

ComposerでFast-Excelをインストールする

 composer require rap2hpoutre/fast-excel

以下のコマンドで実行すると、Git を使用してプロジェクトをクローンすることもできます。

PHPでコレクションをExcelファイルにエクスポートする

Fast-Excelは、コレクションやモデルをExcelにエクスポートすることを非常にシンプルにします。数行のコードだけで、.xlsx、.csv、または.odsファイルを生成できます。この機能はボイラープレートコードを排除し、特にダッシュボードやレポーティングシステムの開発を高速化します。以下の例は、PHPコードを使用してデータをMS Excel XLSXファイルにエクスポートする方法を示しています。ライブラリは、Laravelコレクションを直接Excelファイルに変換し、複雑な設定を必要としません。

PHP ライブラリを使用してデータを Excel XLSX ファイルにエクスポートする方法?

use Rap2hpoutre\FastExcel\FastExcel;
// Sample data
$list = collect([
    ['id' => 1, 'name' => 'Jane'],
    ['id' => 2, 'name' => 'John'],
]);
// Export to Excel
(new FastExcel($list))->export('users.xlsx');

ジェネレータを使用したメモリ効率の高いチャンクエクスポート

オープンソースのFast-Excelライブラリは、低メモリ使用量のサポートと、データのインポートやエクスポートのためのシンプルな構文を備えています。これは \"big data\" を扱うためのフラッグシップ機能です。100万ユーザーを配列にロードする代わりに、Laravelのcursor()やカスタムのyieldジェネレータを使用します。エクスポーターは各行を1つずつ処理し、ファイルに書き込み、メモリから破棄します。これにより、100行をエクスポートする場合でも、1000万行をエクスポートする場合でも、メモリ使用量は一定(非常に低い)に保たれます。

PHP アプリ内でカスタムヘッダー付きの特定フィールドをエクスポートする方法?

return (new FastExcel(User::all()))->export('formatted_users.xlsx', function ($user) {
    return [
        'Full Name' => $user->firstname . ' ' . $user->lastname,
        'Email Address' => $user->email,
        'Member Since' => $user->created_at->format('Y-m-d'),
        'Status' => $user->is_active ? 'Active' : 'Suspended'
    ];
});

データをデータベースに直接インポートする

行を手動でインポートする代わりに、Fast-Excel は各行を処理し、直接データベースに挿入できます。これは管理者による一括アップロードに最適で、データベースへの一括挿入、コードの簡潔化、手作業の削減、管理ワークフローの容易化など多くの利点があります。特に人事システム、CRM、eコマースプラットフォームで有用です。以下は、PHP アプリケーション内でデータベースにデータをインポートする方法を示す有用な例です。

PHP ライブラリを使用してデータをデータベースに直接インポートする方法?

use Rap2hpoutre\FastExcel\FastExcel;
use App\Models\User;

(new FastExcel)->import('users.xlsx', function ($line) {
    return User::create([
        'name' => $line['Name'],
        'email' => $line['Email'],
    ]);
});

PHPによるカスタム列マッピングとフォーマット

データベースのカラムは必ずしも人間にとって読みやすいとは限りません。Fast-Excel ライブラリは、カスタム列または行のマッピングとフォーマットに完全に対応しています。この機能により、エクスポートする属性を正確に定義し、値をその場で再フォーマットできます。姓を大文字にしたり、名と姓を結合したり、‘user_id’ を ‘Employee Identifier’ に名前変更したりする必要がある場合でも、クロージャーを使用すれば最終的な出力配列を完全にコントロールできます。

 日本