「PHP Excel」と検索すれば、いまだに「PHPExcel」に関する記事が出てきます。
しかし、PHPExcelはすでに開発が中止されています。
「PHPExcel – DEAD」
https://github.com/PHPOffice/PHPExcel
そして、PHPExcelの開発者自らが、公式ページで「死んだ」と表現しています。
さらには、PhpSpreadsheetを使うように主張しているのです。
本記事の内容
- PhpSpreadsheetとは?
- PhpSpreadsheetのインストール
それでは、上記に沿って解説していきます。
PhpSpreadsheetとは?
PhpSpreadsheetは、純粋なPHPで書かれたライブラリです。
つまり、拡張モジュール(soファイル)ではないとも言えます。
サポートされているファイル形式
PhpSpreadsheetは様々な形式のファイルを読み書きできるクラス群を提供しています。
そのファイル形式とは、以下。
フォーマット形式 | 読み | 書き |
Open Document Format/OASIS (.ods) | 〇 | 〇 |
Office Open XML (.xlsx) Excel 2007 以降 | 〇 | 〇 |
BIFF 8 (.xls) Excel 97 以降 | 〇 | 〇 |
BIFF 5 (.xls) Excel 95 | 〇 | |
SpreadsheetML (.xml) Excel 2003 | 〇 | |
Gnumeric | 〇 | |
HTML | 〇 | 〇 |
SYLK | 〇 | |
CSV | 〇 | 〇 |
PDF(TCPDF、Dompdf、mPDFのどれかが必要) | 〇 |
上記を見る限り、そこそこ古いエクセルでも読むことは可能のようです。
確かに、古い形式のエクセルを出力する必要性はないでしょうからね。
「古い形式は、読むことさえできればOK」という考え方は合理的です。
ソフトウェア要件
PhpSpreadsheetの利用にあたっては、最も注意すべき点です。
2020年12月末時点では、PHPバージョン7.2以降がサポートされているPHPのバージョンとなります。
そして、サポートされる猶予期間は6ヵ月ということです。
例えば、PHP 7.2はすでにPHP公式では2020年11月30日にサポートが終了しています。
この場合、PhpSpreadsheetにおけるサポートは2021年5月末までということになります。
サポート期限に関しては、意識して利用する必要があります。
特に、クライアントに納品などする場合には。
PhpSpreadsheetのインストール
composerによるインストールが前提のようです。
インストールするコマンドは、以下。
$ composer require phpoffice/phpspreadsheet
コマンドラインのPHP(php-cli)の環境だと、以下をインストールする必要がありました。
OSは、Ubuntu 18.04.5です。
$ sudo apt install php-zip $ sudo apt install php-gd $ sudo apt install php-xml
インストールが正常に完了したら、同じディレクトリに「vendor」が作成されています。
$ ls composer.json composer.lock vendor
では、動作を確認しましょう。
公式サイトで紹介されているサンプルコードです。
test.php
<?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); $writer = new Xlsx($spreadsheet); $writer->save('hello world.xlsx'); ?>
上記プログラムを実行すると、 同じディレクトリ上「hello world.xlsx」というファイルが作成されています。
$ ls composer.json composer.lock 'hello world.xlsx' test.php vendor
hello world.xlsxを開くと、次のように表示されているはずです。
以上、PhpSpreadsheetのインストールです。