忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

PHP PhpSpreadsheet のインストールについて(XAMPPでのPhpSpreadsheetのインストールその2:composerでPhpSpreadsheet)

前回は以下の記事で 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();
?>

出力されたエクセルファイルを見てみると以下の様になります。 (取敢えずエクセルファイルができた様です)












PR

コメント

コメントを書く