#author("2022-04-05T07:57:14+00:00","default:sysosa","sysosa") #author("2022-04-05T07:58:19+00:00","default:sysosa","sysosa") 本家様 [[https://github.com/PHPOffice/PhpSpreadsheet>+https://github.com/PHPOffice/PhpSpreadsheet]] phpでExcelシートを作ったり、Excelシートを読み込める代物. インストールはPHPのライブラリ管理ツール「Composer」経由で行われる。なのではじめのこの「Composer」を入れる ***下拵え「Composer」 [#we830dca] 本家様はこちら[[https://getcomposer.org/>+https://getcomposer.org/]] この「Download」から phpのバージョンを確認してPHP7.2.5以上なら大丈夫. #code(nonumber){{ [root@c ~]# php -v PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies [root@c ~]# }} そうして、 #code(nonumber){{ [root@c ~]# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" (composer-setup.phpがダウンロードされる) [root@c ~]# ls -l composer-setup.php -rw-r--r-- 1 root root 57721 Apr 5 16:36 composer-setup.php [root@c ~]# (取得したダウンローダーのチェックサムを取って違いがないのかの確認) [root@c ~]# php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f(略 Installer verified [root@c ~]# (インストーラーを実行して、composer.pharを作り上げる) [root@c ~]# php composer-setup.php All settings correct for using Composer Downloading... Composer (version 2.3.3) successfully installed to: /root/composer.phar Use it: php composer.phar [root@c ~]# ls -l composer.phar -rwxr-xr-x 1 root root 2693189 Apr 5 16:39 composer.phar [root@c ~]# (プログラムができたのでインストーラーを削除します) [root@c ~]# php -r "unlink('composer-setup.php');" }} 最後に、/usr/local/binとかに配置 #code(nonumber){{ [root@c ~]# mv composer.phar /usr/local/bin/composer }} バージョンを確認してみると #code(nonumber){{ [saber@c ~]$ composer --version Composer version 2.3.3 2022-04-01 22:15:35 [saber@c ~]$ ]} }} ***下拵え「PhpSpreadsheet」 ***下拵え「PhpSpreadsheet」 [#t7ce4d48] composerがインストールできたので、そのcomposerを使って「PhpSpreadsheet」をインストールします っでインストール場所ですが、ホームディレクトリ直下に置いて、それを利用するのもありですが、 プロジェクトフォルダにインストールがいいかな。ここでは「$HOME/excel」なるプロジェクトフォルダにて作業します #code(nonumber){{ [saber@c ~]$ mkdir excel [saber@c excel]$ [saber@c excel]$ composer require phpoffice/phpspreadsheet [saber@c excel]$ ls -l total 32 -rw-r--r-- 1 saber em 71 Apr 5 16:48 composer.json -rw-r--r-- 1 saber em 25175 Apr 5 16:48 composer.lock drwxr-xr-x 10 saber em 148 Apr 5 16:48 vendor/ [saber@c excel]$ }} 「composer.json」「composer.json」「vendor/」が用意される. ***テスト [#bc5d0084] 簡単には[[https://phpspreadsheet.readthedocs.io/en/latest/>+https://phpspreadsheet.readthedocs.io/en/latest/]]の「Hello World」でテスト #code(nonumber){{ [saber@c excel]$ vi sample.php <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); $writer = new Xlsx($spreadsheet); $writer->save('hello world.xlsx'); [saber@c excel]$ }} っで実行 #code(nonumber){{ [saber@c excel]$ php -f sample.php [saber@c excel]$ ls -l total 44 -rw-r--r-- 1 saber em 71 Apr 5 16:48 composer.json -rw-r--r-- 1 saber em 25175 Apr 5 16:48 composer.lock -rw-r--r-- 1 saber em 6307 Apr 5 16:54 'hello world.xlsx' -rw-r--r-- 1 saber em 314 Apr 5 16:54 sample.php drwxr-xr-x 10 saber em 148 Apr 5 16:48 vendor/ [saber@c excel]$ }} と「hello world.xlsx」が作られる. ファイルを開くと下記になる &ref(2022y04m05d_165643592.png,nolink);