PHPでExcelを扱うライブラリPhpSpreadsheetをインストール

ExcelのデータをPostgreSQLに取り込む処理を作っているときの覚書。
PHPを選んだのは慣れているしPythonより早いから。

環境: FreeBSD 14.1, PHP 8.3.6, PhpSpreadsheet 2.1.0


Composerのインストールは前の記事を参考に。
前の記事: PHP composerをCentOS8にインストール

PhpSpreadsheetをインストールしようとしたら下記エラー。
# composer require phpoffice/phpspreadsheet

Cannot use phpoffice/phpspreadsheet's latest version 2.1.0 as it requires ext-ctype * which is missing from your platform.
  Package phpoffice/phpspreadsheet has requirements incompatible with your PHP version, PHP extensions and Composer version:
    - phpoffice/phpspreadsheet 2.1.0 requires ext-ctype * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-dom * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-fileinfo * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-iconv * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-simplexml * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-xmlreader * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-xmlwriter * but it is not present.
    - phpoffice/phpspreadsheet 2.1.0 requires ext-zlib * but it is not present.

実行に必要なPHP拡張機能をインストールしろということなので、まずはインストール済みの拡張機能の一覧を確認。
# php -m

検索してpkg経由でインストール。
# pkg search --search pkg-name 'php83-(ctype|dom|fileinfo|iconv|simplexml|xmlreader|xmlwriter|zlib)'
# pkg install php83-ctype php83-dom php83-fileinfo php83-iconv php83-simplexml php83-xmlreader php83-xmlwriter php83-zlib

PhpSpreadsheetをインストール。
# composer require phpoffice/phpspreadsheet

インストール完了。

あとは公式ドキュメントおよびサンプルが充実しているので参考にする。


【関連記事】