• WEB

PHPでEXCELをつくるやつを試してみる

  • くまぞお
    くまぞお システムちーむ
  • このエントリーをはてなブックマークに追加

今回は日本人ならみんな大好きなEXCELをPHPから弄くり回すやつです。
こいつを使います。
PHPExcel
こいつを使えばEXCELをPHPから新規に作ったり、書き換える事が出来ます。
早速試してみましょう。
まずはinstallですが、Composerを使います。


"require": {
    "phpoffice/phpexcel": "*",
}

その後状況によってupdateかinstallを実行します。


composer install

composer update

あとはコードを書いてイクだけです。


<?php
// Composerのautoload読み込み
require_once dirname(__DIR__).'/vendor/autoload.php';

$colHeaders = ['名前', '年齢'];
$data = [ 
            1 => [
                0 => 'てす子',
                1 => 20
            ],
            2 => [
                0 => 'てす美',
                1 => 21
            ],
            3 => [
                0 => 'てす世',
                1 => 22
            ],
            4 => [
                0 => 'ぱす子',
                1 => 23
            ],
            5 => [
                0 => 'ほげ子',
                1 => 24
            ]
        ];

$book = new PHPExcel();

// bookの情報を空でセット(ないとUnknown Creatorとかになる)
$book->getProperties()
    ->setCreator('')
    ->setTitle('')
    ->setSubject('')
    ->setLastModifiedBy('');

// シート設定
$book->setActiveSheetIndex(0);
$sheet = $book->getActiveSheet();
// シートデフォルトの設定
$sheet->getDefaultStyle()
    ->getFont()
    ->setName(mb_convert_encoding('MS Pゴシック', 'UTF-8'));
// シート名指定
$sheet->setTitle('テスト');

// セルに値を入れる
foreach ($data as $row => $rowValue) {
    foreach ($rowValue as $column => $cellValue) {
        $sheet->setCellValueByColumnAndRow($column, $row, $cellValue);
    }
}

// 先頭に列名を入れる
$sheet->insertNewRowBefore(1, 1);
foreach ($colHeaders as $column => $colHeader) {
    $sheet->setCellValueByColumnAndRow($column, 1, $colHeader);
}

// Excel2007形式で出力する
header('Content-Type: application/vnd.ms-excel');
// バッファのゴミ捨て
ob_end_clean();
// file名を設定
header('Content-Disposition: attachment;filename="'.'テスト'.'.xlsx"');
header('Cache-Control: max-age=0');
$writer = PHPExcel_IOFactory::createWriter($book, "Excel2007");
$writer->save('php://output');

上記のコードを実行して、EXCELをダウンロードすると

EXCELダウンロード

こんな感じ。
素晴らしいでしょう。
あの忌まわしきEXCELがこんなに簡単に作成出来るのですから。
その他、既にあるEXCELのファイルを読み込んだり、編集したりすることが出来ます。
PHPExcelには無限の可能性を感じますね(棒)。

おわり。

このエントリーをはてなブックマークに追加

くまぞおが最近書いた記事

WRITERS POSTS もっと見る

他にもこんな記事が読まれています!

  • WEB
  • マーケティング
  • サーバー・ネットワーク
  • ライフスタイル
  • お知らせ