前回は以下の記事で 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(); ?>
出力されたエクセルファイルを見てみると以下の様になります。 (取敢えずエクセルファイルができた様です)
コメント