PHPExcel とは PHP でエクセルファイルを生成することができるライブラリです。PHPExcel を初めて使ったので今後のために使い方をメモしておきます。
インストール
PHPExcel を下記よりダウンロードした zip ファイルを解凍して中にある Classes ディレクトリを任意の場所に置きます。
PHPExcel – OpenXML – Create Excel2007 documents in PHP – Spreadsheet engine – Home
あとは PHPExcel を使う PHP でこの Classes ディレクトリにパスを通して使用するクラスをインクルードします。
set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/Classes/'); include 'PHPExcel.php'; include 'PHPExcel/IOFactory.php';
エクセルファイルを出力する
基本的な手順は下記のようになります。
- PHPExcel クラスのオブジェクトを生成
- 作業するシートを指定
- セルの値を更新
- ファイルを出力
コードで書くと以下のようになります。
$excel = new PHPExcel();
// シートの設定
$excel->setActiveSheetIndex(0);
$sheet = $excel->getActiveSheet();
$sheet->setTitle('sheet name');
// セルに値を入れる
$sheet->setCellValue('A1', 'hoge');
// Excel2007 形式で出力
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save("output.xlsx");
出力形式は Excel 2007 以外にも指定できます。
// Excel 95 形式
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save("output.xls");
他にも PDF, HTML, CSV などで出力可能です。
セルには文字列だけでなく、数値や計算式も入れられます。
$sheet->setCellValue('B1', '=A2+A3');
また、セルの指定方法は ‘A1′ のような指定もできますし、下記のように行と列を数字で指定することも可能です。
$sheet->setCellValueByColumnAndRow(1, 2, 'hoge');
セルの書式を指定する
セルに罫線を入れたり、フォント、フォントサイズなど書式を指定することも可能です。
// フォント
$sheet->getDefaultStyle()->getFont()->setName('MS Pゴシック');
// フォントサイズ
$sheet->getDefaultStyle()->getFont()->setSize(12);
// セルの下に罫線を引く
$sheet->getStyle('A1')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// センター寄せ
$sheet->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
罫線などはまとめて以下のようにして指定することも可能です。
$cell_style = array(
'borders' => array(
'top' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'left' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
'right' => array('style' => PHPExcel_Style_Border::BORDER_THIN)
)
);
$sheet->getStyle('A1')->applyFromArray($cell_style);
// 行と列で指定することも可能
$sheet->getStyleByColumnAndRow(1, 2)->applyFromArray($cell_style);
セルの色の指定も可能。
$sheet->getStyleByColumnAndRow(1, 2)->getFill()->getStartColor()->setARGB('FFCCFFCC');
テンプレートを読み込んで加工する
PHPExcel でのセルの書式の指定とか結構面倒です。PHP で出力する Excel とかはだいたいフォーマットが同じことが多いです。そこで、まずエクセルで元となるファイルを作成してフォントやセルの色、罫線など必要な設定をしておきます。PHP では各セルの値だけを変更して出力するともっと簡単にできます。
// read template xls file
$reader = PHPExcel_IOFactory::createReader('Excel5');
$excel = $reader->load(TEMPLATE_FILE);
// set active sheet
$excel->setActiveSheetIndex(0);
$sheet = $excel->getActiveSheet();
// update cell
$sheet->setCellValue('A1', 'hoge');
// output excel file
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save("output.xls");
PHPExcel のオブジェクトを生成する部分が違うだけです。
その他
zip ファイルを解凍した中に Documentation フォルダがあり、その中に HTML 形式のドキュメントが入っています。
また、Tests フォルダには 29 個のサンプルコードが入っています。ファイル名からやりたいことの当りをつけられるので、やり方が分からない時には大変参考になります。
関連する投稿
Leave a Reply
Additional comments powered by BackType



Recent Comments