PHPExcelをphp 8.Xで使いたいじゃん?
本当は後継のPHPSpreadsheetを使う
PHPExcelは、もはや説明が不要なほどよく知られたライブラリです。
phpでExcelの読み書きをするなら、まず選択肢に入ってきます。
でも、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からインポートする機能ぐらいしか使用していなかったので、自分の環境ではこれで動作するようになりましたが、使用方法によってはもう少し修正が必要となるかも?
その他修正点
ループしていない箇所でbreakしている箇所をコメントアウト
この記事が気に入ったらサポートをしてみませんか?