PHPでExcelを操作する時に利用するPhpSpreadsheetについての紹介。
PhpSpreadsheetとは
以前「PhpExcel」としてLaravelでも積極敵に活用されていたライブラリの後継版。
新規Excelファイルの作成、既存Excelファイルの読込、読込済みファイルの編集等一通りの操作が可能。
注意点としてはPHPのバージョン7.2以降が要求される点のみ注意が必要。
PhpSpreadsheetの導入
PhpSpreadsheetはcomposerで導入が可能です。
composer require phpoffice/phpspreadsheet
なお、以降のサンプルではPHPのバージョンは7.4、PhpSpreadsheetは1.14.1が導入された環境で作成しています。
新規Excelファイルの作成
まず始めにサンプルとして新規のExcelファイルを作成します。
- 5行目及び6行目で必要ライブラリを読み込みます。今回は新規にExcelファイルを作成するのでWriterを読み込む。
- 8行目及び9行目でインスタンスを生成し操作対象のシートを選択。
- 11行目から14行目でセルに値を設定し。当然、値には文字列や数値、計算式等も設定可能。
- 16行目から17行目で作成したExcelデータをファイルに書き出し終了
以上の流れで「SAMPLE01.xlsx」というファイルが作成されます。
作成されたファイルを開いた結果が以下のとおりです。
日本語も正しく表示され、数値及び数値を元にした計算式の結果も正しく設定されている事がわかります。
このように非常に簡単に新規にExcelファイルを作成する事が可能です。
既存Excelファイルの読込と更新
次に既存Excelファイルを読込、その一部を変更したものを保存します。
折角ですので読込対象のファイルは先ほど作成したファイルを利用します。
- 5行目及び7行目で必要ライブラリを読み込みます。今回は既存のExcelファイルの読込を行う為IOFactoryを追加。
- 9行目及び10行目で既存ファイルを元にインスタンスを生成し操作対象のシートを選択。
- 12行目及び13行目でセルに新しい値を設定します。
- 15行目及び16行目で作成したExcelデータをファイルに書き出し終了。
以上の流れで「SAMPLE02.xlsx」というファイルが作成されます。
作成されたファイルを開いた結果が以下のとおりです。
値も正しく更新され、計算結果も正しく更新されています。
このように新規Excelファイルの作成も既存Excelファイルの読込も簡単に行えます。
ここでは基本的な操作のみ扱いましたがPhpSpreadsheetを使うとより複雑なExcelシートの作成や活用も可能です。
詳しくはオフィシャルドキュメントを参考にすると良いでしょう。