前回は以下の記事で composer のインストールまでを説明しましたが、今回はその続きで PhpSpreadsheet 本体のインストールについて説明したいと思います。
⇒PHP PhpSpreadsheet のインストールについて(XAMPPでのPhpSpreadsheetのインストールその1:composer)
■Composer によるバージョン指定
私のPCのPHPのバージョンは「5.6.28」なので、バージョンの指定を Composer で行います。
コマンドプロンプトを開いて以下のコマンドを実行します。
composer config platform.php 5.6.28
なおこのコマンドを実行する前にディレクトリを PhpSpreadsheet をインストールしたい場所に変更します。
(私のPCではXAMPPなので「C:\xampp\htdocs」です。)
このコマンドの結果「composer.json」が作成されるはずです。
{
"require": {
},
"config": {
"platform": {
"php": "5.6.28"
}
}
}
■Composer による PhpSpreadsheet のインストール
上記のコマンドに引き続いて PhpSpreadsheet のインストールをするために以下のコマンドを実行します。
composer require phpoffice/phpspreadsheet
実際の実行結果は以下の様になります。
C:\xampp\htdocs>composer require phpoffice/phpspreadsheet Using version ^1.8 for phpoffice/phpspreadsheet ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 4 installs, 0 updates, 0 removals - Installing markbaker/matrix (1.2.0): Loading from cache - Installing markbaker/complex (1.4.8): Loading from cache - Installing psr/simple-cache (1.0.1): Loading from cache - Installing phpoffice/phpspreadsheet (1.8.2): Loading from cache phpoffice/phpspreadsheet suggests installing mpdf/mpdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing dompdf/dompdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing tecnickcom/tcpdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing jpgraph/jpgraph (Option for rendering charts, or including charts with PDF or HTML Writers) Writing lock file Generating autoload files
このコマンドの結果「composer.json」は以下の様になります。
{
"require": {
"phpoffice/phpspreadsheet": "^1.8"
},
"config": {
"platform": {
"php": "5.6.28"
}
}
}
これで PhpSpreadsheet が利用できる様になりましたので、簡単な例を以下に示します。
■PhpSpreadsheet による簡単な例
それでは PhpSpreadsheet による簡単な例を示します。
以前の PHPExcel の場合とよく似ていますが、 最初に PhpSpreadsheet ライブラリの読み込みを行うため、 上記で PhpSpreadsheet のインストールしたディレクトリの中の「/vendor/autoload.php」をインクルードします。
尚、ソースが存在するディレクトリは PhpSpreadsheet のインストールしたディレクトリより1個階層が下なので「require '../vendor/autoload.php';」となります。
更に「use」キーワードでライブラリのクラス名のエイリアスを指定します。
あとのエクセルの処理は PHPExcel の以下の記事と似た感じで記述できます。
⇒PHP PHPExcel エクセルのワークシートのセルへのアクセスについて
<?php
// ライブラリ読込
require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Spreadsheetオブジェクト生成
$objSpreadsheet = new Spreadsheet();
// シート設定
$objSheet = $objSpreadsheet->getActiveSheet();
// [A1]セルに文字列設定
$objSheet->setCellValue('A1', 'Spreadsheetで作成しました。');
// [A2]セルに数値設定
$objSheet->setCellValue('A2', 123.56);
// [A3]セルにBOOLEAN設定
$objSheet->setCellValue('A3', TRUE);
// [A4]セルに書式設定
$objSheet->setCellValue(
'A4',
'=IF(A3, CONCATENATE(A1, " ", A2), CONCATENATE(A2, " ", A1))'
);
// XLSX形式オブジェクト生成
$objWriter = new Xlsx($objSpreadsheet);
// ファイル書込み
$objWriter->save('test1-1.xlsx');
exit();
?>
出力されたエクセルファイルを見てみると以下の様になります。 (取敢えずエクセルファイルができた様です)
コメント