PHP8.XでもPHPExcelが使いたい

本当は後継のPHPSpreadsheetを使う

PHPExcelは、もはや説明が不要なほどよく知られたライブラリです。
phpExcelの読み書きをするなら、まず選択肢に入ってきます。
でも、PHPSpreadsheetという後継のライブラリが登場し、PHPExcelは非推奨となりました。
確かに、PHPExcelと比べてバグも減り使いやすくはなったのですが、互換性はありません。
PHPExcelで動いていたプログラムは、それなりに修正が必要となります。

ただ、php7.4までなら非推奨ながらも動作はしているようでしたが、php8.X以降では完全に使えなくなってしまいました。

PHPExcelをphp8.Xでも動作するように修正したほうが良さそうな場合・・・(非推奨)

のっぴきならない事情で、「PHPSpreadsheetは導入せずにPHPExcelをphp8.X以降でも使いたい!」そんな方のための記事です。そして忘備録。

修正点

ほとんど、いくつかのファイルで以下のように修正するだけです。{}ではなくを使う。

$test{$i} // php8.X以降では Fatal Errorとなる。
$test[$i] // こっちに修正

修正ファイル

  • PHPExcel/Worksheet/AutoFilter.php

  • PHPExcel/Shared/String.php

  • PHPExcel/ReferenceHelper.php

  • PHPExcel/IOFactory.php

  • PHPExcel/Cell.php

  • PHPExcel/Cell/DefaultValueBinder.php

  • PHPExcel/Calculation.php

  • PHPExcel/Calculation/Functions.php

データをDBから取得してExcel出力したり、Excelからインポートする機能ぐらいしか使用していなかったので、自分の環境ではこれで動作するようになりましたが、使用方法によってはもう少し修正が必要となるかも?

その他修正点