はじめに要件
PHPからエクセルを操作したい。
最初はPhpSpreadsheetを入れようとしました。
参考:PHPExcelが非推奨になったので後継のPhpSpreadsheetを使ってみる
https://qiita.com/mosaxiv/items/d71890ef203e506b75fc
しかし、PHPのバージョンが古くて入りませんでした。
[InvalidArgumentException]
Package phpoffice/phpspreadsheet at version has a PHP requirement incompatible with your PHP version (5.4.45)
そこで古いPHPExcelを試してみました。
参考:PHPExcelでエクセル出力入門
https://qiita.com/suin/items/7a8d0979b7675d6fd05b
composerのインストール
composerインストール
curl -sS https://getcomposer.org/installer | php
phpexcelインストール
php composer.phar require phpoffice/phpexcel
しかし、エラーとなります。
Problem 1
- phpoffice/phpexcel 1.8.1 requires ext-xmlwriter
php-xmlが無いらしいです。
参考:composerでPHPUnitがインストールできない
http://blue-goheimochi.hatenablog.com/entry/2013/07/24/composer%E3%81%A7PHPUnit%E3%81%8C%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84
php-xmlのインストール
php-xmlインストール
yum install php-xml
しかし、エラーとなります。
Error: Package: php-xml-5.3.3-49.el6.x86_64 (base)
Requires: php-common(x86-64) = 5.3.3-49.el6
remiで入れたPHPだとphp-xmlもremiで入れる必要があります。
参考:PHP 5.5 などで PHP-XML などのインストール方法
https://himenaotaro.hatenablog.com/entry/2016/02/20/162600
remiでphp-xmlインストール
yum install --enablerepo=remi php-xml
PHPExcelのインストール
PHPExcelインストール
php composer.phar require phpoffice/phpexcel
やっと成功します。
しかし、フォルダにテストプログラムをおいて実行すると、ステータス500のエラーとなります。
サーバーのログを見ると、php-xmlが機能していないようです。
PHP Fatal error: Class 'XMLWriter' not found
・・php-xmlを入れた後にはApacheの再起動をしましょう。
service httpd restart
テストプログラムが成功しました!