【要修正】PHPExcelをPHPバージョン8で動作するための修正方法

PHPでExcelファイルを出力するライブラリで「PHPExcel」があります。※現在はPhpSpreadsheetが推奨されていますのでこれから構築する方はPhpSpreadsheetを利用してください。

現在PHPExcelを利用していて、PhpSpreadsheetに変更できない方はPHPのバージョンアップをしても引き続きPHPExcelを使うことになるかと思います。

PHP7.XからPHP8へのバージョンアップについて

PHPのバージョンを8に変更した場合、PHPExcelでエラーが発生し動作しなかったため、対象方法について記載します。

PHPバージョンアップ前にはバックアップを取得

バージョンアップ作業を行う前にはプログラム関連をあらかじめバックアップしておきましょう。

  • バックアッププラグインを利用する
  • FTPツールにてサーバモジュールをローカルへダウンロードする

上記2点が簡単な方法となります。バックアップの取得方法についてはこちらの記事に具体的なプラグイン名など記載しています。

括弧書きを修正する

PHP8にバージョンアップをすると{ではなく(でくくる必要があります。

PHP8では動作しないソース

if ($dynamicRuleType{0} == 'M' || $dynamicRuleType{0} == 'Q') {

PHP8で動作するソース

if ($dynamicRuleType[0] == 'M' || $dynamicRuleType[0] == 'Q') {

修正が必要なファイルは以下の通りです。

  • AutoFilter.php
  • Calculation.php
  • Cell.php
  • DefaultValueBinder.php
  • Functions.php
  • ReferenceHelper.php
  • String.php

修正したプログラムをアップロードし、動作確認を行う

修正したプログラムファイルをFTPでアップロードします。PHPはファイルをサーバにアップロードするだけでビルドなどを行わずに最新状態にすることができます。あとはPHPExcelの動作確認をするためにExcelの出力などを行うことで正常動作確認ができます。