PHPExcelの後継、PhpSpreadsheetを使ってみた

のえる のえる 2019.04.23

一昔前はPHPでExcel操作をする時は 「PHPExcel」 が主流でしたが
開発終了と共に後継の 「PhpSpreadsheet」 が出ています。

 

今回はその PhpSpreadsheet を使用してみようと思います。

 

◆PhpSpreadsheetに関するリンク

環境

実行環境はこんな感じです。

 

CentOS 7
PHP Version 7.1.11
Composer

 

※Composerのインストールおよび使い方の説明は割愛します
※Linuxの使い方の説明は割愛します

実装方法

インストール

まずは composer で PhpSpreadsheet をインストールします

続いて PhpSpreadsheet を使用できるようにします

これで PhpSpreadsheet を使用する準備ができました。

Excelを書き出す

Excelを書き出すには下記のような感じになります。

これでブラウザからアクセスすると、エクセルがダウンロードできると思います。

セルを数値で指定する

通常、セルの場所を指定するには 「A1」「G19」 など、列と行の組み合わせで指定します。
しかし、プログラムのループで出力する場合、英字を扱いたくない場合などもあると思います。
そんな時は下記のような命令が使用できます。

注意するところは、列・行は 1 から指定するところでしょうか。

Excelを読み込む

アップロードされたり、サーバーにあるExcelファイルを読み込むには下記のような感じになります。

注意点は2つです。

 

1つは 「Xlsx と Xls でReaderが異なる」 こと (6 – 7行目)

 

これに関してはファイルの種類から判定すると良いと思います。

 

2つは 「値の取得方法が複数あり、それぞれ結果が異なる」 こと (14 – 16行目)

 

これはどういうことかというと 「値をそのまま取得する」 か 「値の計算結果を取得する」 の違いです。
細かな違いについては公式APIに記載されていますのでそちらを参照してください。

 

PhpOffice\PhpSpreadsheet\Cell\Cell:getValue()
PhpOffice\PhpSpreadsheet\Cell\Cell:getCalculatedValue()
PhpOffice\PhpSpreadsheet\Cell\Cell:getOldCalculatedValue()

さいごに

今回説明したのは基本的な操作になります。
使ってみた感想としては、PHPExcelとほとんど同じように使えるので導入コストは低いかも?という感じです。
もっと詳しく操作したい場合は、公式のAPIリファレンスを参照してください。

POPULAR

のえる

書いた人

のえる

Full-stack Developer / Guitarist