PHPでのExcel操作に関し、PHPExcelとPhpSpreadsheetを比較したので覚え書き。
概要
共通点
- いずれもPHPOfficeシリーズのひとつ
- スプレッドシートファイルフォーマットの読み込み/書き込みができるライブラリ
PHPExcel
- 2015年に最終バージョン1.8.1をリリースした後、2017年非推奨 → 2019年にアーカイブされた
PhpSpreadsheet
- PHPExcelの後継で、互換性はなく、品質がよくなっている
- 名前にSpreadsheetとあるが、Excelファイルの操作も可能
比較
表でその違いを比較してみました。
PHPExcel | PhpSpreadsheet | |
---|---|---|
リポジトリ | https://github.com/PHPOffice/PHPExcel | https://github.com/PHPOffice/PhpSpreadsheet |
PHPのバージョン | 5.2以上 (changelog.txtの内容から、~5.6と思われる) |
7.3以上 (2022/01/23現在:PHP対象バージョンのサポート終了後6ヶ月までメンテナンスされる) |
ドキュメント |
概要 サンプルコード |
https://phpspreadsheet.readthedocs.io/en/latest/ |
対象ファイル(読み) | BIFF 5-8 (.xls) Excel 95とそれ以上のバージョン Office Open XML (.xlsx) Excel 2007とそれ以上のバージョン SpreadsheetML (.xml) Excel 2003 Open Document Format/OASIS (.ods) Gnumeric HTML SYLK CSV |
BIFF 5 (.xls) Excel 95 BIFF 8 (.xls) Excel 97とそれ以上のバージョン Office Open XML (.xlsx) Excel 2007とそれ以上のバージョン SpreadsheetML (.xml) Excel 2003 Open Document Format/OASIS (.ods) Gnumeric HTML SYLK CSV |
対象ファイル(書き) | BIFF 8 (.xls) Excel 95とそれ以上のバージョン Office Open XML (.xlsx) Excel 2007とそれ以上のバージョン HTML CSV |
BIFF 8 (.xls) Excel 97とそれ以上のバージョン Office Open XML (.xlsx) Excel 2007とそれ以上のバージョン Open Document Format/OASIS (.ods) HTML CSV |
まとめ
原則PhpSpreadsheetを使うべきだが、動作環境のPHPのバージョンや読み書きしたいファイルフォーマットのバージョンによっては、PHPExcelにせざるを得ない場合がある(現動作環境、そうせざるを得ないので非常に歯がゆいです・・)