#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);
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS