Excelファイルの出力

それでは、Excelファイルを出力するプログラムを見ていきましょう。ここでは、1st.phpというファイルを作成します。日本語が含まれているため、UTF-8形式で保存します。

シンプルなExcelファイルを出力するコード

<?php

//(1)必要なクラスをインクルード
set_include_path(get_include_path() . PATH_SEPARATOR . './Classes/');
include 'PHPExcel.php';
include 'PHPExcel/IOFactory.php';

//(2)PHPExcelオブジェクトの生成
$xl = new PHPExcel();

//(3)シートの設定
$xl->setActiveSheetIndex(0);
$sheet = $xl->getActiveSheet();
$sheet->setTitle('シート1です');

//(4)セルの値を設定
$sheet->setCellValue('A1', 'PHPExcelテスト'); //文字列
$sheet->setCellValue('B2', 123);              //数値
$sheet->setCellValue('C3', '=B2-100');        //計算式
$sheet->setCellValue('D4', true);             //真偽値
$sheet->setCellValue('E5', false);            //真偽値

//(5)スタイルの設定(標準フォント、罫線、中央揃え)
$sheet->getDefaultStyle()->getFont()->setName('MS Pゴシック');
$sheet->getDefaultStyle()->getFont()->setSize(11);
$sheet->getStyle('C3')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$sheet->getStyle('C3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//(6)Excel2007形式で保存
$writer = PHPExcel_IOFactory::createWriter($xl, 'Excel2007');
$writer->save("output.xlsx");

?>

ブラウザから実行すると、PHPファイルと同じフォルダに次のExcelファイルが出力されます。

実行結果(output.xlsx)

コードの説明

コードの内容を簡単に見ていきましょう。

(1)の部分では、Classesフォルダ配下のクラスを使うためにインクルードをしています。
(2)では、PHPExcelクラスをインスタンス化しています。このPHPExcelクラスは、Excelブックを表す重要なクラスです。このクラスを介してワークシートやドキュメントのプロパティ等を操作します。
(3)ではワークシートの名前を設定しています。getActiveSheetメソッドから返されるPHPExcel_Worksheetクラスは、Excelのワークシートを表します。このワークシートにはセル/図/グラフ等が含まれます。
(4)では、セルに値(文字列、数値、計算式、真偽値)を設定しています。setCellValueメソッドでは、セルの位置と値を指定できます。
(5)では、フォント/罫線/中央揃えといったスタイルを設定しています。get(Default)Styleメソッドから返されるPHPExcel_Styleクラスを使って、フォントや色といったスタイルを変更できます。
(6)では、これまで設定してきた内容をExcelファイルとして出力しています。ファイル出力を担うオブジェクトは、PHPExcel_IOFactoryクラスのcreateWriterメソッドから取得します。createWriterメソッドの引数には「PHPExcelオブジェクト」と「出力形式の名前(次ページの表の引数パラメータ列参照)」を指定します。最後にsaveメソッドを呼び出すことで、指定したパスにファイルを出力することができます。