
ショコラ
PhpSpreadsheet を使うには?
PHPExcel は PHP8 では動きませんので、PHP8 では PhpSpreadsheet でキメマス。

もっさん先輩
手順
PhpSpreadsheet でエクセルファイルを作成する手順。
- PHPコンテナを起動します。
docker run -it php:8 bash
- apt-get アップデートします。
apt-get update
- PhpSpreadsheet で使用する libgd-dev と libzip-devパッケージをインストールします。
apt-get install -y --no-install-recommends libgd-dev libzip-dev
––no-install-recommends
オプション有り → 38.2 MB
オプション無し → 38.5 MB
- PhpSpreadsheet で使用する gd と zip をインストールします。
docker-php-ext-install gd zip
- コンポーザーをインストールします。
curl -sS https://getcomposer.org/installer | php &&\
mv composer.phar /usr/local/bin/composer &&\
chmod a+x /usr/local/bin/composer
- コンポーザーで PhpSpreadsheet をインストールします。
composer require phpoffice/phpspreadsheet
- テストプログラムを作ってみます。
cat <<'EOF' > excel.php
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$book = new Spreadsheet();
$book->getActiveSheet()->fromArray(['なまえ','パスワード'],null,'A1',true);
$book->getActiveSheet()->setCellValue('A2','もっさん');
$book->getActiveSheet()->setCellValue('B2','123456');
$writer = new Xlsx($book);
$writer->save('test.xlsx');
EOF
- エクセルファイルを作成します。
php excel.php
エクセルが出来ました。

以上