🍑

[PHP]PHPExcelとPhpSpreadsheetの比較

2022/01/23に公開

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.txtPHPのリリース履歴の内容から、~5.6と思われる)
7.3以上
(2022/01/23現在:PHP対象バージョンのサポート終了後6ヶ月までメンテナンスされる)
ドキュメント 概要
サンプルコード
PHPExcel developer documentation.doc - PHPOffice/PHPExcel - GitHub
PhpSpreadsheet Documentation
対象ファイル(読み) 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
PDF
BIFF 8 (.xls) Excel 97とそれ以上のバージョン
Office Open XML (.xlsx) Excel 2007とそれ以上のバージョン
Open Document Format/OASIS (.ods)
HTML
CSV
PDF

まとめ

原則PHPSpreadsheetを使うべきだが、動作環境のPHPのバージョンや読み書きしたいファイルフォーマットのバージョンによっては、PHPExcelにせざるを得ない場合がある

Discussion